Skip to main content
The OpenMetrics integration requires CXDOT Collector 1.4.0 or greater. OpenMetrics defines a standard format for exposing metrics. Use the OpenMetrics CXDOT Collector integration to collect metrics from OpenMetrics and Prometheus endpoints running in your environment.

Supported telemetry types

The OpenMetrics CXDOT Collector integration supports these telemetry types:

Prerequisites

The OpenMetrics CXDOT Collector integration has the following prerequisites:
  • Make each OpenMetrics or Prometheus endpoint reachable from the CXDOT collector.
  • Identify the metric names to collect from each endpoint.

Configure

To configure the OpenMetrics CXDOT Collector integration, follow these steps:
  1. Configure autodiscovery so the CXDOT collector discovers the endpoints you want to scrape. For each target, provide the full metrics endpoint URL and the metrics to collect. For more information, see autodiscovery.
  2. Optional: Configure static targets when you want to scrape a fixed list of endpoints instead of using autodiscovery. For example, add the following to the values.yaml for your Helm chart:
    When scrape.endpoints isn’t empty, this integration instance collects from exactly those endpoints and doesn’t collect from targets found through autodiscovery.

Validate

To validate the OpenMetrics CXDOT Collector integration, follow these steps:
  1. In Metrics Explorer, run the following query:
    Confirm that each target reports 1.
  2. In the Live Telemetry Analyzer, filter for cxdot.integration.name=openmetrics. Confirm that the metric names you configured appear.
  3. When you configured static targets, run the following query in Metrics Explorer:
    Confirm that the query returns the expected time series for each static target.
For more information about diagnosing a failing integration, see Troubleshooting.

Configuration reference

Configure one OpenMetrics integration instance with the following settings. In Helm values, place these settings under config.integrations.openmetrics. In a Collector configuration file, place them under cxdot.integrations.openmetrics.

Optional settings

  • enabled Type: boolean. Optional. Default: true. Whether to run the OpenMetrics integration. If true, the Collector collects metrics from configured or discovered endpoints. If false, the Collector doesn’t run this integration.
  • scrape Type: object. Optional. Settings for collecting metrics from OpenMetrics endpoints.
  • scrape.enabled Type: boolean. Optional. Default: true. Whether to collect OpenMetrics metrics. If true, the Collector collects metrics from configured or discovered endpoints. If false, it doesn’t collect OpenMetrics metrics.
  • scrape.endpoints Type: array of object. Optional. Default: []. Static OpenMetrics endpoints. Each entry identifies one target and the metrics to collect from it. When this list isn’t empty, the integration collects from exactly these endpoints instead of endpoints found through discovery annotations.
  • scrape.endpoints[].endpoint Type: string. Required. Full URL of the metrics endpoint, for example https://app.svc:9090/metrics?format=text. Metric collection uses the path and query exactly as given.
  • scrape.endpoints[].namespace Type: string. Optional. Default: “. A name recorded on every time series from this endpoint, as the cxdot.openmetrics.namespace resource attribute. Metric names stay exactly as the target exposes them, so this groups an endpoint’s telemetry without changing what its metrics are called.
  • scrape.endpoints[].service Type: string. Optional. Default: “. Overrides the service.name resource attribute for this endpoint.
  • scrape.endpoints[].metrics Type: object. Required. Which metrics to collect, and how to reshape them.
  • scrape.endpoints[].metrics.include Type: array of string. Required. Minimum items: 1. Target metrics to collect. The integration always collects its health and collection status metrics. Each entry is a regular expression matched against the metric name. Type suffixes are not part of the name: a counter exposed as requests_total is collected as requests, because OpenMetrics calls that family requests and carries the type separately. To collect every target metric, use ".*".
  • scrape.endpoints[].metrics.exclude Type: array of string. Optional. Default: []. Target metrics to exclude from the metrics selected by include. Each entry is a regular expression matched against the metric name. Health and collection status metrics aren’t excluded.
  • scrape.endpoints[].metrics.rename Type: object. Optional. Default: {}. Metric renames, as {old: new}. Only an exact name can be renamed. The integration ignores a rename whose key is a regular expression.
  • scrape.endpoints[].metrics.types Type: object. Optional. Default: {}. Metric type overrides, as {name: counter}. Keys are exact metric names or regular expressions. Values are counter or gauge. A metric without a declared type is otherwise read as a gauge.
  • scrape.endpoints[].metrics.strip_prefix Type: string. Optional. Default: “. A prefix removed from every metric name during collection. Removed first, so every other option here, include included, refers to the shortened name.
  • scrape.endpoints[].labels Type: object. Optional. Settings for renaming labels and dropping samples.
  • scrape.endpoints[].labels.rename Type: object. Optional. Default: {}. Label renames, as {old: new}. A rename changes the label name without removing the label, so distinct time series remain distinct. Renaming a label to a name the time series already has overwrites that label’s value.
  • scrape.endpoints[].labels.sample_drop_rules Type: object. Optional. Default: {}. Drops a whole sample when one of its labels matches. Each key is a label name. The value is a list of regular expressions matched against the label’s value. To drop every sample the label appears on with a non-empty value, use ".+".
  • scrape.endpoints[].tags Type: array of string. Optional. Default: []. Extra resource attributes in key:value format to add to every time series from this endpoint. The integration ignores an entry without a colon.
  • scrape.endpoints[].interval Type: duration. Optional. Default: 15s. Time between metric collections from this endpoint.
  • scrape.endpoints[].timeout Type: duration. Optional. Default: 10s. Maximum time to wait for each metric collection.
  • scrape.endpoints[].max_samples Type: integer. Optional. Default: 0. Maximum number of samples accepted from one metric collection. A value of 0, the default, means no limit. A collection that exceeds the limit fails and reports up as 0 instead of returning an incomplete set of samples.
  • scrape.endpoints[].follow_redirects Type: boolean. Optional. Default: true. Whether to follow HTTP redirects. If true, the Collector follows redirects. If false, a redirect causes the metric collection to fail.