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:

1. seriesCountByMetricName: Provides a list of metrics names and their series count.

2. seriesCountByLabelName: Provides a list of label names and their series count.

3. seriesCountByLabelValuePair: Provides a list of label-value pairs and their series count.

4. 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: Use the “Alerts, Rules and Tags API Key” in the authorization header.

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: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'

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: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'

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.