123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- // Copyright 2012-present Oliver Eilhard. All rights reserved.
- // Use of this source code is governed by a MIT-license.
- // See http://olivere.mit-license.org/license.txt for details.
- package elastic
- import (
- "context"
- "testing"
- )
- func TestNodesStats(t *testing.T) {
- client, err := NewClient()
- if err != nil {
- t.Fatal(err)
- }
- info, err := client.NodesStats().Human(true).Do(context.TODO())
- if err != nil {
- t.Fatal(err)
- }
- if info == nil {
- t.Fatal("expected nodes stats")
- }
- if info.ClusterName == "" {
- t.Errorf("expected cluster name; got: %q", info.ClusterName)
- }
- if len(info.Nodes) == 0 {
- t.Errorf("expected some nodes; got: %d", len(info.Nodes))
- }
- for id, node := range info.Nodes {
- if id == "" {
- t.Errorf("expected node id; got: %q", id)
- }
- if node == nil {
- t.Fatalf("expected node info; got: %v", node)
- }
- if len(node.Name) == 0 {
- t.Errorf("expected node name; got: %q", node.Name)
- }
- if node.Timestamp == 0 {
- t.Errorf("expected timestamp; got: %q", node.Timestamp)
- }
- }
- }
- func TestNodesStatsBuildURL(t *testing.T) {
- tests := []struct {
- NodeIds []string
- Metrics []string
- IndexMetrics []string
- Expected string
- }{
- {
- NodeIds: nil,
- Metrics: nil,
- IndexMetrics: nil,
- Expected: "/_nodes/stats",
- },
- {
- NodeIds: []string{"node1"},
- Metrics: nil,
- IndexMetrics: nil,
- Expected: "/_nodes/node1/stats",
- },
- {
- NodeIds: []string{"node1", "node2"},
- Metrics: nil,
- IndexMetrics: nil,
- Expected: "/_nodes/node1%2Cnode2/stats",
- },
- {
- NodeIds: nil,
- Metrics: []string{"indices"},
- IndexMetrics: nil,
- Expected: "/_nodes/stats/indices",
- },
- {
- NodeIds: nil,
- Metrics: []string{"indices", "jvm"},
- IndexMetrics: nil,
- Expected: "/_nodes/stats/indices%2Cjvm",
- },
- {
- NodeIds: []string{"node1"},
- Metrics: []string{"indices", "jvm"},
- IndexMetrics: nil,
- Expected: "/_nodes/node1/stats/indices%2Cjvm",
- },
- {
- NodeIds: nil,
- Metrics: nil,
- IndexMetrics: []string{"fielddata"},
- Expected: "/_nodes/stats/_all/fielddata",
- },
- {
- NodeIds: []string{"node1"},
- Metrics: nil,
- IndexMetrics: []string{"fielddata"},
- Expected: "/_nodes/node1/stats/_all/fielddata",
- },
- {
- NodeIds: nil,
- Metrics: []string{"indices"},
- IndexMetrics: []string{"fielddata"},
- Expected: "/_nodes/stats/indices/fielddata",
- },
- {
- NodeIds: []string{"node1"},
- Metrics: []string{"indices"},
- IndexMetrics: []string{"fielddata"},
- Expected: "/_nodes/node1/stats/indices/fielddata",
- },
- {
- NodeIds: []string{"node1", "node2"},
- Metrics: []string{"indices", "jvm"},
- IndexMetrics: []string{"fielddata", "docs"},
- Expected: "/_nodes/node1%2Cnode2/stats/indices%2Cjvm/fielddata%2Cdocs",
- },
- }
- client, err := NewClient()
- if err != nil {
- t.Fatal(err)
- }
- for i, tt := range tests {
- svc := client.NodesStats().NodeId(tt.NodeIds...).Metric(tt.Metrics...).IndexMetric(tt.IndexMetrics...)
- path, _, err := svc.buildURL()
- if err != nil {
- t.Errorf("#%d: expected no error, got %v", i, err)
- } else {
- if want, have := tt.Expected, path; want != have {
- t.Errorf("#%d: expected %q, got %q", i, want, have)
- }
- }
- }
- }
|