Skip to content

Remote Write

Defines a Prometheus Remote-Write output to publish TenXSummary metrics.

This output utilizes The PrometheusRWMetricRegistryFactory class to instantiate a Micrometer registry that uses the Prometheus Remote-Write protocol.

Configuration

To configure the Prometheus RW metrics output module, Edit these settings.

Below is the default configuration from: remote-write/config.yaml (* Required Fields).

Edit Online

Edit config.yaml Locally

# 🔟❎ 'run' Prometheus remote write metric output configuration

# Configure Prometheus remote write metric counter outputs.
# To learn more see https://doc.log10x.com/run/output/metric/prometheus/remote-write/
# For Prometheus RW, see https://prometheus.io/docs/concepts/remote_write_spec/

# Set the 10x pipeline to 'run'
tenx: run

# =============================== Dependencies ================================

include: run/modules/output/metric/prometheus/remote-write

# ========================== Prometheus RW Options ============================

# Define multiple Prometheus RW metric outputs below
prometheusRW:

    # --------------------------- Connection Options --------------------------

    # 'host' sets the Prometheus remote write endpoint
  - host: http://localhost:9090/api/v1/write # (❗ REQUIRED)

    # 'user' for authentication
    user: null # (❗ REQUIRED)

    # 'password' for authentication
    password: null # (❗ REQUIRED)

    # ---------------------------- Counter Options ----------------------------

    # 'nameField' sets the TenXSummary field whose value identifies the micrometer counter to increment. 
    #  The 'inputName' field returns the name of the aggregator that produced the target TenXSummary instance.
    #  To learn more see https://doc.log10x.com/run/aggregate
    nameField: inputName

    # 'counterFields' specifies the TenXSummary fields whose values are used to increment the counter.
    #  To learn more see https://doc.log10x.com/run/aggregate/#summary-fields
    counterFields:
      - summaryVolume
      - summaryBytes
      - summaryTotals

    # 'tagFields' sets the TenXSummary fields used as the counter tag dimension values.
    #  Defaults to https://doc.log10x.com/run/initialize/#enrichmentFields
    tagFields:
      - $=yield TenXEnv.get("enrichmentFields")

    # 'tagFieldNames' allows setting custom names to aggregated fields for metrics reporting.
    #  Defaults to https://doc.log10x.com/run/initialize/#metricFieldNames
    tagFieldNames:
      - $=yield TenXEnv.get("metricFieldNames")

    # 'filter' sets a JavaScript expression that TenXSummaries must evaluate as truthy to write to the output.
    #  To learn more see https://doc.log10x.com/run/output/regulate/#filter-expressions
    filter: isSummary

    # ---------------------------- Publish Options ----------------------------

    # 'step' sets the interval to send metrics to Prometheus RW (e.g. '1m').
    #  To learn more see https://micrometer.io/docs/concepts#rate-aggregation
    step: 5s

Options

Specify the options below to configure multiple Prometheus RW metrics output:

Name Description Category
prometheusRWEnabled Enable this output General
prometheusRWHost Host address of remote Prometheus instance to write data to Connection
prometheusRWUser Username to use when authenticating with remote write target Connection
prometheusRWPassword Password to use when authenticating with remote write target Connection
prometheusRWToken Token to use when authenticating with remote write target Connection
prometheusRWStep The interval at which to publish metrics to output Counter
prometheusRWNameField Name of the TenXSummary field identifying the metric Counter
prometheusRWCounterFields Names of the TenXSummary fields used to increment the metric counter value Counter
prometheusRWTagFields List of TenXSummary fields to use as metric tag values Counter
prometheusRWTagFieldNames List of custom names to use for TenXSummary fields. Counter
prometheusRWFilter A JavaScript expression an TenXSummary must evaluate as 'truthy' against to be written to this output Counter
prometheusRWMaxCardinality Maximum number of unique metric combinations allowed Counter

General

prometheusRWEnabled

Enable this output.

Type Default Category
Boolean true General

Enable or disable this output.

Connection

prometheusRWHost

Host address of remote Prometheus instance to write data to.

Type Required Category
String Connection

Defines the target host address for remote write. Use full URL path, (i.e. http://:/api/v1/write).

prometheusRWUser

Username to use when authenticating with remote write target.

Type Default Category
String "" Connection

Defines the username with which to perform a basic auth with the remote write target. If specified, expects 'prometheusRWPassword' also be passed.

prometheusRWPassword

Password to use when authenticating with remote write target.

Type Default Category
String "" Connection

Defines the password with which to perform a basic auth with the remote write target. Only used if 'prometheusRWUser' is also specified.

prometheusRWToken

Token to use when authenticating with remote write target.

Type Default Category
String "" Connection

Defines a token with which to perform a bearer token auth with the remote write target.

Counter

prometheusRWStep

The interval at which to publish metrics to output.

Type Default Category
String 1min Counter

Sets the interval at which to publish metrics to the time-series destination (e.g., '1m'). To learn more see rate-aggregation.

prometheusRWNameField

Name of the TenXSummary field identifying the metric.

Type Default Category
String summaryValues Counter

Defines the name of the TenXSummary field whose value identifies a metric counter. Defaults to the summaryValues field which holds the value(s) by which TenXObjects are grouped into the current TenXSummary instance. To learn more see micrometer counters.

prometheusRWCounterFields

Names of the TenXSummary fields used to increment the metric counter value.

Type Default Category
List summaryVolume Counter

Defines the name of the TenXSummary field by whose value to increment the counter.

prometheusRWTagFields

List of TenXSummary fields to use as metric tag values.

Type Default Category
List [] Counter

Defines the TenXSummary field names to use as tag values. Tags are dimensions that enable slicing a particular named metric to drill down to reason about its value. To learn more see micrometer tags.

prometheusRWTagFieldNames

List of custom names to use for TenXSummary fields.

Type Default Category
List [] Counter

Defines the a list of custom names to give fields when reporting them. Format as a list of name1, custom1, name2, custom2.

For example, to set a custom name of 'My-Custom-Field' to an existing 'intrinsic-field':

prometheusRW:
  tagFieldNames:
    - intrinsic-field
    - My-Custom-Field.

prometheusRWFilter

A JavaScript expression an TenXSummary must evaluate as 'truthy' against to be written to this output.

Type Default Category
String "" Counter

Specifies a JavaScript expression that an TenXSummary must evaluate as truthy to write its instance/template field values to the target counter.

For example, to only emit TenXSummaries produced by the 'myMetric' aggregator, specify:

prometheusRW:
  filter: this.inputName == "myMetric"

To learn more see inputName.

prometheusRWMaxCardinality

Maximum number of unique metric combinations allowed.

Type Default Category
Number 500 Counter

Sets the maximum number of unique metric combinations (cardinality) allowed for this output. When exceeded, metrics will be dropped to prevent excessive cardinality.


This module is defined in remote-write/module.yaml.