Metrics Cardinality API
With Coralogix you can get your metrics cardinality (i.e. the number of elements in a set, or grouping, of metrics as defined by query criteria). Our API returns cardinality statistics by dates* in 4 categories:
-
seriesCountByMetricName: Provides a list of metrics names and their series count.
-
seriesCountByLabelName: Provides a list of label names and their series count.
-
seriesCountByLabelValuePair: Provides a list of label-value pairs and their series count.
-
labelValueCountByLabelName: Provides a list of label names and their distinct value counts.
* Dates are in UTC.
URL: Select the Metrics Cardinality API endpoint associated with your Coralogix domain.
Method: GET
Authorization: To use this API you need to create a personal or team API key. It’s recommended to use permission presets, as they are automatically updated with all relevant permissions. Alternatively, you can manually add individual permissions.
Preset | Action | Description |
---|---|---|
DataAnalytics | LOGS.DATA-ANALYTICS#HIGH:READ METRICS.DATA-ANALYTICS#HIGH:READ |
View Frequent Search Mapping Statistics (Logs) View Analytics Data (Metrics) |
Query parameters:
-
topN: Number of highest cardinality metrics to display in each category.
-
It should be higher than 0.
-
10 by default.
-
-
fromDate: The oldest date that will be included into the statistics response.
-
It can’t be in the future.
-
It can’t be after toDate.
-
today by default.
-
-
toDate: The most recent date that will be included into the statistics response.
-
It can’t be in the future.
-
It can’t be before fromDate.
-
today by default.
-
Defaults will be used if all query parameters are omitted.
Example #1: topN, fromDate, and toDate.
curl 'https://ng-api-http.<span class="domain-value"></span>/api/metrics/cardinality?topN=2&fromDate=2022-12-01&toDate=2022-12-02' -H 'authorization: <cx_api_key>'
Output:
[{
"date": "2022-12-02",
"data": {
"totalSeries": 120344,
"totalLabelValuePairs": 1603533,
"seriesCountByMetricName": [{
"name": "apiserver_request_duration_seconds_bucket",
"value": 31929
}, {
"name": "etcd_request_duration_seconds_bucket",
"value": 7874
}],
"seriesCountByLabelName": [{
"name": "cluster",
"value": 121290
}, {
"name": "job",
"value": 90650
}],
"seriesCountByLabelValuePair": [{
"name": "cluster=onlineboutique",
"value": 121290
}, {
"name": "job=kubernetes-apiservers",
"value": 72421
}],
"labelValueCountByLabelName": [{
"name": "__name__",
"value": 711
}, {
"name": "le",
"value": 159
}]
}
}, {
"date": "2022-12-01",
"data": {
"totalSeries": 325782,
"totalLabelValuePairs": 5101308,
"seriesCountByMetricName": [{
"name": "apiserver_request_duration_seconds_bucket",
"value": 105285
}, {
"name": "etcd_request_duration_seconds_bucket",
"value": 26405
}],
"seriesCountByLabelName": [{
"name": "cluster",
"value": 405643
}, {
"name": "job",
"value": 404865
}],
"seriesCountByLabelValuePair": [{
"name": "cluster=onlineboutique",
"value": 405643
}, {
"name": "job=kubernetes-apiservers",
"value": 239969
}],
"labelValueCountByLabelName": [{
"name": "__name__",
"value": 712
}, {
"name": "name",
"value": 200
}]
}
}]
Example #2: all query parameters omitted.
curl 'https://ng-api-http.<span class="domain-value"></span>/api/metrics/cardinality?topN=&fromDate=&toDate=' -H 'authorization: <cx_api_key>'
Output:
[{
"date": "2022-12-02",
"data": {
"totalSeries": 121067,
"totalLabelValuePairs": 1612878,
"seriesCountByMetricName": [{
"name": "apiserver_request_duration_seconds_bucket",
"value": 32119
}, {
"name": "etcd_request_duration_seconds_bucket",
"value": 7912
}, {
"name": "apiserver_response_sizes_bucket",
"value": 5365
}, {
"name": "rest_client_request_duration_seconds_bucket",
"value": 4943
}, {
"name": "apiserver_storage_list_duration_seconds_bucket",
"value": 2758
}, {
"name": "apiserver_watch_events_sizes_bucket",
"value": 2144
}, {
"name": "storage_operation_duration_seconds_bucket",
"value": 2134
}, {
"name": "kubelet_runtime_operations_duration_seconds_bucket",
"value": 1842
}, {
"name": "container_tasks_state",
"value": 1449
}, {
"name": "container_blkio_device_usage_total",
"value": 911
}],
"seriesCountByLabelName": [{
"name": "cluster",
"value": 122013
}, {
"name": "job",
"value": 121984
}, {
"name": "instance",
"value": 121924
}, {
"name": "__name__",
"value": 121067
}, {
"name": "le",
"value": 71430
}, {
"name": "verb",
"value": 47811
}, {
"name": "component",
"value": 46996
}, {
"name": "version",
"value": 44351
}, {
"name": "resource",
"value": 42355
}, {
"name": "scope",
"value": 42311
}],
"seriesCountByLabelValuePair": [{
"name": "cluster=onlineboutique",
"value": 122013
}, {
"name": "job=kubernetes-apiservers",
"value": 72862
}, {
"name": "instance=172.31.6.22:443",
"value": 42526
}, {
"name": "component=apiserver",
"value": 41181
}, {
"name": "version=v1",
"value": 37223
}, {
"name": "beta_kubernetes_io_arch=amd64",
"value": 28538
}, {
"name": "eks_amazonaws_com_capacityType=ON_DEMAND",
"value": 24434
}, {
"name": "beta_kubernetes_io_os=linux",
"value": 24410
}, {
"name": "eks_amazonaws_com_nodegroup=chen-eks2-nodes",
"value": 24306
}, {
"name": "beta_kubernetes_io_instance_type=t3.large",
"value": 20464
}],
"labelValueCountByLabelName": [{
"name": "__name__",
"value": 711
}, {
"name": "le",
"value": 159
}, {
"name": "type",
"value": 147
}, {
"name": "name",
"value": 146
}, {
"name": "resource",
"value": 130
}, {
"name": "id",
"value": 116
}, {
"name": "device",
"value": 87
}, {
"name": "url",
"value": 79
}, {
"name": "replicaset",
"value": 77
}, {
"name": "kind",
"value": 57
}]
}
}]
Still have questions? If so, please reach out to us via our in-app chat for quick assistance.