package marklogic

import (
	"fmt"
	"net/http"
	"net/http/httptest"
	"net/url"
	"testing"

	"github.com/influxdata/telegraf/testutil"
	"github.com/stretchr/testify/require"
)

func TestMarklogic(t *testing.T) {
	// Create a test server with the const response JSON
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		w.WriteHeader(http.StatusOK)
		fmt.Fprintln(w, response)
	}))
	defer ts.Close()

	// Parse the URL of the test server, used to verify the expected host
	_, err := url.Parse(ts.URL)
	require.NoError(t, err)

	// Create a new Marklogic instance with our given test server

	ml := &Marklogic{
		Hosts: []string{"example1"},
		URL:   string(ts.URL),
		//Sources: []string{"http://localhost:8002/manage/v2/hosts/hostname1?view=status&format=json"},
	}

	// Create a test accumulator
	acc := &testutil.Accumulator{}

	// Init() call to parse all source URL's
	err = ml.Init()
	require.NoError(t, err)

	// Gather data from the test server
	err = ml.Gather(acc)
	require.NoError(t, err)

	// Expect the correct values for all known keys
	expectFields := map[string]interface{}{
		"online":                    true,
		"total_load":                0.00429263804107904,
		"ncpus":                     1,
		"ncores":                    4,
		"total_rate":                15.6527042388916,
		"total_cpu_stat_user":       0.276381999254227,
		"total_cpu_stat_system":     0.636515974998474,
		"total_cpu_stat_idle":       99.0578002929688,
		"total_cpu_stat_iowait":     0.0125628001987934,
		"memory_process_size":       1234,
		"memory_process_rss":        815,
		"memory_system_total":       3947,
		"memory_system_free":        2761,
		"memory_process_swap_size":  0,
		"memory_size":               4096,
		"host_size":                 64,
		"log_device_space":          34968,
		"data_dir_space":            34968,
		"query_read_bytes":          11492428,
		"query_read_load":           0,
		"merge_read_load":           0,
		"merge_write_load":          0,
		"http_server_receive_bytes": 285915,
		"http_server_send_bytes":    0,
	}
	// Expect the correct values for all tags
	expectTags := map[string]string{
		"source": "ml1.local",
		"id":     "2592913110757471141",
	}

	acc.AssertContainsTaggedFields(t, "marklogic", expectFields, expectTags)

}

var response = `
{
  "host-status": {
    "id": "2592913110757471141",
    "name": "ml1.local",
    "version": "10.0-1",
    "effective-version": 10000100,
    "host-mode": "normal",
    "host-mode-description": "",
    "meta": {
      "uri": "/manage/v2/hosts/ml1.local?view=status",
      "current-time": "2019-07-28T22:32:19.056203Z",
      "elapsed-time": {
        "units": "sec",
        "value": 0.013035
      }
    },
    "relations": {
      "relation-group": [
        {
          "uriref": "/manage/v2/forests?view=status&host-id=ml1.local",
          "typeref": "forests",
          "relation": [
            {
              "uriref": "/manage/v2/forests/App-Services",
              "idref": "8573569457346659714",
              "nameref": "App-Services"
            },
            {
              "uriref": "/manage/v2/forests/Documents",
              "idref": "17189472171231792168",
              "nameref": "Documents"
            },
            {
              "uriref": "/manage/v2/forests/Extensions",
              "idref": "1510244530748962553",
              "nameref": "Extensions"
            },
            {
              "uriref": "/manage/v2/forests/Fab",
              "idref": "16221965829238302106",
              "nameref": "Fab"
            },
            {
              "uriref": "/manage/v2/forests/Last-Login",
              "idref": "1093671762706318022",
              "nameref": "Last-Login"
            },
            {
              "uriref": "/manage/v2/forests/Meters",
              "idref": "1573439446779995954",
              "nameref": "Meters"
            },
            {
              "uriref": "/manage/v2/forests/Modules",
              "idref": "18320951141685848719",
              "nameref": "Modules"
            },
            {
              "uriref": "/manage/v2/forests/Schemas",
              "idref": "18206720449696085936",
              "nameref": "Schemas"
            },
            {
              "uriref": "/manage/v2/forests/Security",
              "idref": "9348728036360382939",
              "nameref": "Security"
            },
            {
              "uriref": "/manage/v2/forests/Triggers",
              "idref": "10142793547905338229",
              "nameref": "Triggers"
            }
          ]
        },
        {
          "typeref": "groups",
          "relation": [
            {
              "uriref": "/manage/v2/groups/Default?view=status",
              "idref": "16808579782544283978",
              "nameref": "Default"
            }
          ]
        }
      ]
    },
    "status-properties": {
      "online": {
        "units": "bool",
        "value": true
      },
      "secure": {
        "units": "bool",
        "value": false
      },
      "cache-properties": {
        "cache-detail": {
          "compressed-tree-cache-partition": [
            {
              "partition-size": 64,
              "partition-table": 3.40000009536743,
              "partition-used": 29.7000007629395,
              "partition-free": 70.1999969482422,
              "partition-overhead": 0.100000001490116
            }
          ],
          "expanded-tree-cache-partition": [
            {
              "partition-size": 128,
              "partition-table": 6.19999980926514,
              "partition-busy": 0,
              "partition-used": 87.3000030517578,
              "partition-free": 12.3999996185303,
              "partition-overhead": 0.300000011920929
            }
          ],
          "triple-cache-partition": [
            {
              "partition-size": 64,
              "partition-busy": 0,
              "partition-used": 0,
              "partition-free": 100
            }
          ],
          "triple-value-cache-partition": [
            {
              "partition-size": 128,
              "partition-busy": 0,
              "partition-used": 0,
              "partition-free": 100,
              "value-count": 0,
              "value-bytes-total": 0,
              "value-bytes-average": 0
            }
          ]
        }
      },
      "load-properties": {
        "total-load": {
          "units": "sec/sec",
          "value": 0.00429263804107904
        },
        "load-detail": {
          "query-read-load": {
            "units": "sec/sec",
            "value": 0
          },
          "journal-write-load": {
            "units": "sec/sec",
            "value": 0
          },
          "save-write-load": {
            "units": "sec/sec",
            "value": 0
          },
          "merge-read-load": {
            "units": "sec/sec",
            "value": 0
          },
          "merge-write-load": {
            "units": "sec/sec",
            "value": 0
          },
          "backup-read-load": {
            "units": "sec/sec",
            "value": 0
          },
          "backup-write-load": {
            "units": "sec/sec",
            "value": 0
          },
          "restore-read-load": {
            "units": "sec/sec",
            "value": 0
          },
          "restore-write-load": {
            "units": "sec/sec",
            "value": 0
          },
          "large-read-load": {
            "units": "sec/sec",
            "value": 0
          },
          "large-write-load": {
            "units": "sec/sec",
            "value": 0
          },
          "external-binary-read-load": {
            "units": "sec/sec",
            "value": 0
          },
          "xdqp-client-receive-load": {
            "units": "sec/sec",
            "value": 0
          },
          "xdqp-client-send-load": {
            "units": "sec/sec",
            "value": 0
          },
          "xdqp-server-receive-load": {
            "units": "sec/sec",
            "value": 0
          },
          "xdqp-server-send-load": {
            "units": "sec/sec",
            "value": 0
          },
          "foreign-xdqp-client-receive-load": {
            "units": "sec/sec",
            "value": 0
          },
          "foreign-xdqp-client-send-load": {
            "units": "sec/sec",
            "value": 0
          },
          "foreign-xdqp-server-receive-load": {
            "units": "sec/sec",
            "value": 0
          },
          "foreign-xdqp-server-send-load": {
            "units": "sec/sec",
            "value": 0
          },
          "read-lock-wait-load": {
            "units": "sec/sec",
            "value": 0
          },
          "read-lock-hold-load": {
            "units": "sec/sec",
            "value": 0
          },
          "write-lock-wait-load": {
            "units": "sec/sec",
            "value": 0
          },
          "write-lock-hold-load": {
            "units": "sec/sec",
            "value": 0.00429263804107904
          },
          "deadlock-wait-load": {
            "units": "sec/sec",
            "value": 0
          }
        }
      },
      "rate-properties": {
        "total-rate": {
          "units": "MB/sec",
          "value": 15.6527042388916
        },
        "rate-detail": {
          "memory-system-pagein-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "memory-system-pageout-rate": {
            "units": "MB/sec",
            "value": 15.6420001983643
          },
          "memory-system-swapin-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "memory-system-swapout-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "query-read-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "journal-write-rate": {
            "units": "MB/sec",
            "value": 0.00372338597662747
          },
          "save-write-rate": {
            "units": "MB/sec",
            "value": 0.0024786819703877
          },
          "merge-read-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "merge-write-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "backup-read-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "backup-write-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "restore-read-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "restore-write-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "large-read-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "large-write-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "external-binary-read-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "xdqp-client-receive-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "xdqp-client-send-rate": {
            "units": "MB/sec",
            "value": 0.00293614692054689
          },
          "xdqp-server-receive-rate": {
            "units": "MB/sec",
            "value": 0.00156576896551996
          },
          "xdqp-server-send-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "foreign-xdqp-client-receive-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "foreign-xdqp-client-send-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "foreign-xdqp-server-receive-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "foreign-xdqp-server-send-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "read-lock-rate": {
            "units": "MB/sec",
            "value": 0
          },
          "write-lock-rate": {
            "units": "MB/sec",
            "value": 0.251882910728455
          },
          "deadlock-rate": {
            "units": "MB/sec",
            "value": 0
          }
        }
      },
      "status-detail": {
        "bind-port": 7999,
        "connect-port": 7999,
        "ssl-fips-enabled": {
          "units": "bool",
          "value": true
        },
        "foreign-bind-port": 7998,
        "foreign-connect-port": 7998,
        "background-io-limit": {
          "units": "quantity",
          "value": 0
        },
        "metering-enabled": {
          "units": "bool",
          "value": true
        },
        "meters-database": {
          "units": "quantity",
          "value": "11952918530142281790"
        },
        "performance-metering-enabled": {
          "units": "bool",
          "value": true
        },
        "performance-metering-period": {
          "units": "second",
          "value": 60
        },
        "performance-metering-retain-raw": {
          "units": "day",
          "value": 7
        },
        "performance-metering-retain-hourly": {
          "units": "day",
          "value": 30
        },
        "performance-metering-retain-daily": {
          "units": "day",
          "value": 90
        },
        "last-startup": {
          "units": "datetime",
          "value": "2019-07-26T17:23:36.412644Z"
        },
        "version": "10.0-1",
        "effective-version": {
          "units": "quantity",
          "value": 10000100
        },
        "software-version": {
          "units": "quantity",
          "value": 10000100
        },
        "os-version": "NA",
        "converters-version": "10.0-1",
        "host-mode": {
          "units": "enum",
          "value": "normal"
        },
        "architecture": "x86_64",
        "platform": "linux",
        "license-key": "000-000-000-000-000-000-000",
        "licensee": "NA",
        "license-key-expires": {
          "units": "datetime",
          "value": "2999-01-23T00:00:00Z"
        },
        "license-key-cpus": {
          "units": "quantity",
          "value": 0
        },
        "license-key-cores": {
          "units": "quantity",
          "value": 0
        },
        "license-key-size": {
          "units": "MB",
          "value": 0
        },
        "license-key-option": [
          {
            "units": "enum",
            "value": "conversion"
          },
          {
            "units": "enum",
            "value": "failover"
          },
          {
            "units": "enum",
            "value": "alerting"
          },
          {
            "units": "enum",
            "value": "geospatial"
          },
          {
            "units": "enum",
            "value": "flexible replication"
          },
          {
            "units": "enum",
            "value": "tiered storage"
          },
          {
            "units": "enum",
            "value": "semantics"
          },
          {
            "units": "enum",
            "value": "French"
          },
          {
            "units": "enum",
            "value": "Italian"
          },
          {
            "units": "enum",
            "value": "German"
          },
          {
            "units": "enum",
            "value": "Spanish"
          },
          {
            "units": "enum",
            "value": "Traditional Chinese"
          },
          {
            "units": "enum",
            "value": "Simplified Chinese"
          },
          {
            "units": "enum",
            "value": "Arabic"
          },
          {
            "units": "enum",
            "value": "Russian"
          },
          {
            "units": "enum",
            "value": "Dutch"
          },
          {
            "units": "enum",
            "value": "Korean"
          },
          {
            "units": "enum",
            "value": "Persian"
          },
          {
            "units": "enum",
            "value": "Japanese"
          },
          {
            "units": "enum",
            "value": "Portuguese"
          },
          {
            "units": "enum",
            "value": "English"
          }
        ],
        "edition": {
          "units": "enum",
          "value": "Enterprise Edition"
        },
        "environment": {
          "units": "enum",
          "value": "developer"
        },
        "cpus": {
          "units": "quantity",
          "value": 1
        },
        "cores": {
          "units": "quantity",
          "value": 4
        },
        "core-threads": {
          "units": "quantity",
          "value": 4
        },
        "total-cpu-stat-user": 0.276381999254227,
        "total-cpu-stat-nice": 0,
        "total-cpu-stat-system": 0.636515974998474,
        "total-cpu-stat-idle": 99.0578002929688,
        "total-cpu-stat-iowait": 0.0125628001987934,
        "total-cpu-stat-irq": 0,
        "total-cpu-stat-softirq": 0.0167504008859396,
        "total-cpu-stat-steal": 0,
        "total-cpu-stat-guest": 0,
        "total-cpu-stat-guest-nice": 0,
        "memory-process-size": {
          "units": "fraction",
          "value": 1234
        },
        "memory-process-rss": {
          "units": "fraction",
          "value": 815
        },
        "memory-process-anon": {
          "units": "fraction",
          "value": 743
        },
        "memory-process-rss-hwm": {
          "units": "fraction",
          "value": 1072
        },
        "memory-process-swap-size": {
          "units": "fraction",
          "value": 0
        },
        "memory-process-huge-pages-size": {
          "units": "fraction",
          "value": 0
        },
        "memory-system-total": {
          "units": "fraction",
          "value": 3947
        },
        "memory-system-free": {
          "units": "fraction",
          "value": 2761
        },
        "memory-system-pagein-rate": {
          "units": "fraction",
          "value": 0
        },
        "memory-system-pageout-rate": {
          "units": "fraction",
          "value": 15.6420001983643
        },
        "memory-system-swapin-rate": {
          "units": "fraction",
          "value": 0
        },
        "memory-system-swapout-rate": {
          "units": "fraction",
          "value": 0
        },
        "memory-size": {
          "units": "quantity",
          "value": 4096
        },
        "memory-file-size": {
          "units": "quantity",
          "value": 5
        },
        "memory-forest-size": {
          "units": "quantity",
          "value": 849
        },
        "memory-unclosed-size": {
          "units": "quantity",
          "value": 0
        },
        "memory-cache-size": {
          "units": "quantity",
          "value": 320
        },
        "memory-registry-size": {
          "units": "quantity",
          "value": 1
        },
        "memory-join-size": {
          "units": "quantity",
          "value": 0
        },
        "host-size": {
          "units": "MB",
          "value": 64
        },
        "host-large-data-size": {
          "units": "MB",
          "value": 0
        },
        "log-device-space": {
          "units": "MB",
          "value": 34968
        },
        "data-dir-space": {
          "units": "MB",
          "value": 34968
        },
        "query-read-bytes": {
          "units": "bytes",
          "value": 11492428
        },
        "query-read-time": {
          "units": "time",
          "value": "PT0.141471S"
        },
        "query-read-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "query-read-load": {
          "units": "",
          "value": 0
        },
        "journal-write-bytes": {
          "units": "bytes",
          "value": 285717868
        },
        "journal-write-time": {
          "units": "time",
          "value": "PT17.300832S"
        },
        "journal-write-rate": {
          "units": "MB/sec",
          "value": 0.00372338597662747
        },
        "journal-write-load": {
          "units": "",
          "value": 0
        },
        "save-write-bytes": {
          "units": "bytes",
          "value": 95818597
        },
        "save-write-time": {
          "units": "time",
          "value": "PT2.972855S"
        },
        "save-write-rate": {
          "units": "MB/sec",
          "value": 0.0024786819703877
        },
        "save-write-load": {
          "units": "",
          "value": 0
        },
        "merge-read-bytes": {
          "units": "bytes",
          "value": 55374848
        },
        "merge-read-time": {
          "units": "time",
          "value": "PT0.535705S"
        },
        "merge-read-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "merge-read-load": {
          "units": "",
          "value": 0
        },
        "merge-write-bytes": {
          "units": "bytes",
          "value": 146451731
        },
        "merge-write-time": {
          "units": "time",
          "value": "PT5.392288S"
        },
        "merge-write-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "merge-write-load": {
          "units": "",
          "value": 0
        },
        "backup-read-bytes": {
          "units": "bytes",
          "value": 0
        },
        "backup-read-time": {
          "units": "time",
          "value": "PT0S"
        },
        "backup-read-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "backup-read-load": {
          "units": "",
          "value": 0
        },
        "backup-write-bytes": {
          "units": "bytes",
          "value": 0
        },
        "backup-write-time": {
          "units": "time",
          "value": "PT0S"
        },
        "backup-write-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "backup-write-load": {
          "units": "",
          "value": 0
        },
        "restore-read-bytes": {
          "units": "bytes",
          "value": 0
        },
        "restore-read-time": {
          "units": "time",
          "value": "PT0S"
        },
        "restore-read-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "restore-read-load": {
          "units": "",
          "value": 0
        },
        "restore-write-bytes": {
          "units": "bytes",
          "value": 0
        },
        "restore-write-time": {
          "units": "time",
          "value": "PT0S"
        },
        "restore-write-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "restore-write-load": {
          "units": "",
          "value": 0
        },
        "large-read-bytes": {
          "units": "bytes",
          "value": 0
        },
        "large-read-time": {
          "units": "time",
          "value": "PT0S"
        },
        "large-read-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "large-read-load": {
          "units": "",
          "value": 0
        },
        "large-write-bytes": {
          "units": "bytes",
          "value": 0
        },
        "large-write-time": {
          "units": "time",
          "value": "PT0S"
        },
        "large-write-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "large-write-load": {
          "units": "",
          "value": 0
        },
        "external-binary-read-bytes": {
          "units": "bytes",
          "value": 0
        },
        "external-binary-read-time": {
          "units": "time",
          "value": "PT0S"
        },
        "external-binary-read-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "external-binary-read-load": {
          "units": "",
          "value": 0
        },
        "webDAV-server-receive-bytes": {
          "units": "bytes",
          "value": 0
        },
        "webDAV-server-receive-time": {
          "units": "sec",
          "value": "PT0S"
        },
        "webDAV-server-receive-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "webDAV-server-receive-load": {
          "units": "",
          "value": 0
        },
        "webDAV-server-send-bytes": {
          "units": "bytes",
          "value": 0
        },
        "webDAV-server-send-time": {
          "units": "sec",
          "value": "PT0S"
        },
        "webDAV-server-send-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "webDAV-server-send-load": {
          "units": "",
          "value": 0
        },
        "http-server-receive-bytes": {
          "units": "bytes",
          "value": 285915
        },
        "http-server-receive-time": {
          "units": "sec",
          "value": "PT0.02028S"
        },
        "http-server-receive-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "http-server-receive-load": {
          "units": "",
          "value": 0
        },
        "http-server-send-bytes": {
          "units": "bytes",
          "value": 0
        },
        "http-server-send-time": {
          "units": "sec",
          "value": "PT0S"
        },
        "http-server-send-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "http-server-send-load": {
          "units": "",
          "value": 0
        },
        "xdbc-server-receive-bytes": {
          "units": "bytes",
          "value": 0
        },
        "xdbc-server-receive-time": {
          "units": "sec",
          "value": "PT0S"
        },
        "xdbc-server-receive-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "xdbc-server-receive-load": {
          "units": "",
          "value": 0
        },
        "xdbc-server-send-bytes": {
          "units": "bytes",
          "value": 0
        },
        "xdbc-server-send-time": {
          "units": "sec",
          "value": "PT0S"
        },
        "xdbc-server-send-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "xdbc-server-send-load": {
          "units": "",
          "value": 0
        },
        "odbc-server-receive-bytes": {
          "units": "bytes",
          "value": 0
        },
        "odbc-server-receive-time": {
          "units": "sec",
          "value": "PT0S"
        },
        "odbc-server-receive-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "odbc-server-receive-load": {
          "units": "",
          "value": 0
        },
        "odbc-server-send-bytes": {
          "units": "bytes",
          "value": 0
        },
        "odbc-server-send-time": {
          "units": "sec",
          "value": "PT0S"
        },
        "odbc-server-send-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "odbc-server-send-load": {
          "units": "",
          "value": 0
        },
        "xdqp-client-receive-bytes": {
          "units": "bytes",
          "value": 3020032
        },
        "xdqp-client-receive-time": {
          "units": "time",
          "value": "PT0.046612S"
        },
        "xdqp-client-receive-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "xdqp-client-receive-load": {
          "units": "",
          "value": 0
        },
        "xdqp-client-send-bytes": {
          "units": "bytes",
          "value": 163513952
        },
        "xdqp-client-send-time": {
          "units": "time",
          "value": "PT22.700289S"
        },
        "xdqp-client-send-rate": {
          "units": "MB/sec",
          "value": 0.00293614692054689
        },
        "xdqp-client-send-load": {
          "units": "",
          "value": 0
        },
        "xdqp-server-receive-bytes": {
          "units": "bytes",
          "value": 131973888
        },
        "xdqp-server-receive-time": {
          "units": "time",
          "value": "PT3.474521S"
        },
        "xdqp-server-receive-rate": {
          "units": "MB/sec",
          "value": 0.00156576896551996
        },
        "xdqp-server-receive-load": {
          "units": "",
          "value": 0
        },
        "xdqp-server-send-bytes": {
          "units": "bytes",
          "value": 10035300
        },
        "xdqp-server-send-time": {
          "units": "time",
          "value": "PT4.275597S"
        },
        "xdqp-server-send-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "xdqp-server-send-load": {
          "units": "",
          "value": 0
        },
        "xdqp-server-request-time": {
          "units": "milliseconds",
          "value": 0.743777990341187
        },
        "xdqp-server-request-rate": {
          "units": "requests/sec",
          "value": 0.371862411499023
        },
        "foreign-xdqp-client-receive-bytes": {
          "units": "bytes",
          "value": 0
        },
        "foreign-xdqp-client-receive-time": {
          "units": "time",
          "value": "PT0S"
        },
        "foreign-xdqp-client-receive-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "foreign-xdqp-client-receive-load": {
          "units": "",
          "value": 0
        },
        "foreign-xdqp-client-send-bytes": {
          "units": "bytes",
          "value": 0
        },
        "foreign-xdqp-client-send-time": {
          "units": "time",
          "value": "PT0S"
        },
        "foreign-xdqp-client-send-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "foreign-xdqp-client-send-load": {
          "units": "",
          "value": 0
        },
        "foreign-xdqp-server-receive-bytes": {
          "units": "bytes",
          "value": 0
        },
        "foreign-xdqp-server-receive-time": {
          "units": "time",
          "value": "PT0S"
        },
        "foreign-xdqp-server-receive-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "foreign-xdqp-server-receive-load": {
          "units": "",
          "value": 0
        },
        "foreign-xdqp-server-send-bytes": {
          "units": "bytes",
          "value": 0
        },
        "foreign-xdqp-server-send-time": {
          "units": "time",
          "value": "PT0S"
        },
        "foreign-xdqp-server-send-rate": {
          "units": "MB/sec",
          "value": 0
        },
        "foreign-xdqp-server-send-load": {
          "units": "",
          "value": 0
        },
        "read-lock-count": {
          "units": "locks",
          "value": 104
        },
        "read-lock-wait-time": {
          "units": "seconds",
          "value": "PT0.001464S"
        },
        "read-lock-hold-time": {
          "units": "seconds",
          "value": "PT3.022913S"
        },
        "read-lock-rate": {
          "units": "locks/sec",
          "value": 0
        },
        "read-lock-wait-load": {
          "units": "",
          "value": 0
        },
        "read-lock-hold-load": {
          "units": "",
          "value": 0
        },
        "write-lock-count": {
          "units": "locks",
          "value": 15911
        },
        "write-lock-wait-time": {
          "units": "seconds",
          "value": "PT0.317098S"
        },
        "write-lock-hold-time": {
          "units": "seconds",
          "value": "PT11M46.9923759S"
        },
        "write-lock-rate": {
          "units": "locks/sec",
          "value": 0.251882910728455
        },
        "write-lock-wait-load": {
          "units": "",
          "value": 0
        },
        "write-lock-hold-load": {
          "units": "",
          "value": 0.00429263804107904
        },
        "deadlock-count": {
          "units": "locks",
          "value": 0
        },
        "deadlock-wait-time": {
          "units": "seconds",
          "value": "PT0S"
        },
        "deadlock-rate": {
          "units": "locks/sec",
          "value": 0
        },
        "deadlock-wait-load": {
          "units": "",
          "value": 0
        },
        "external-kms-request-rate": {
          "units": "requests/sec",
          "value": 0
        },
        "external-kms-request-time": {
          "units": "milliseconds",
          "value": 0
        },
        "keystore-status": "normal",
        "ldap-request-rate": {
          "units": "requests/sec",
          "value": 0
        },
        "ldap-request-time": {
          "units": "milliseconds",
          "value": 0
        }
      }
    },
    "related-views": {
      "related-view": [
        {
          "view-type": "item",
          "view-name": "default",
          "view-uri": "/manage/v2/hosts/example"
        }
      ]
    }
  }
}
`