Edge Delta Prometheus Remote Write Destination

Configure the Edge Delta Prometheus remote write destination node.

Overview

The Edge Delta Prometheus remote write destination node sends collected metrics directly to a specified Prometheus endpoint using the remote write protocol. This allows for centralized metrics storage and analysis without the need for Prometheus to scrape metrics from each monitored service individually.

  • incoming_data_types: metric, heartbeat.

The prometheus_remote_write_output is useful in situations where network security policies prevent services from being scraped directly or in architectures where you wish to have a centralized Prometheus setup receiving metrics from various remote nodes or regions. This is especially beneficial when dealing with large distributed systems where direct scraping might not be efficient or feasible.

In contrast, the prometheus_exporter_output is suitable for scenarios where you want to expose your metrics to a Prometheus server for scraping. This is often used if you are deploying services that Prometheus will monitor directly, and you aim to use the metric data for alerting or visualization.

Example Configuration

This example configuration shows how to set up the Prometheus remote write destination node in an Edge Delta pipeline.

nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write

Required Parameters

name

A descriptive name for the node. This is the name that will appear in Visual Pipelines and you can reference this node in the YAML using the name. It must be unique across all nodes. It is a YAML list element so it begins with a - and a space followed by the string. It is a required parameter for all nodes.

nodes:
  - name: <node name>
    type: <node type>

type: prometheus_exporter_output

The type parameter specifies the type of node being configured. It is specified as a string from a closed list of node types. It is a required parameter.

nodes:
  - name: <node name>
    type: <node type>

endpoint

The endpoint parameter defines the URL where Edge Delta will send metrics data. The endpoint format should adhere to the Prometheus remote write API.

nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write

Optional Parameters

buffer_ttl

Defines the duration for which unsuccessful attempts to send data should be retried. Useful for ensuring data resilience.

nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  buffer_ttl: 15m

buffer_path

Specifies the file path where unsent metrics data can be temporarily stored for retry, ensuring no data loss during transient network issues.

nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  buffer_path: /var/log/edgedelta/outputbuffer

buffer_max_bytesize

Specifies the maximum size for the buffer used when retries are necessary. This helps manage available storage usage efficiently.

nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  buffer_max_bytesize: 10MB

tls

The tls parameter is a dictionary type that enables a number of options to be set using sub-parameters. It is optional.

ca_file The ca_file parameter is a child of the tls parameter. It specifies the CA certificate file. It is specified as a string and is optional.

nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  tls:
    ca_file: /certs/ca.pem

ca_path The ca_path parameter is a child of the tls parameter. It specifies the location of the CA certificate files. It is specified as a string and is optional.

nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  tls:
    ca_path: /var/etc/ca

client_auth_type The client_auth_type parameter is a child of the tls parameter. It specifies the authentication type to use for the connection. It is specified as a string from a closed list and is optional.

The following authentication methods are available:

  • noclientcert indicates that no client certificate should be requested during the handshake, and if any certificates are sent they will not be verified.
  • requestclientcert indicates that a client certificate should be requested during the handshake, but does not require that the client send any certificates.
  • requireanyclientcert indicates that a client certificate should be requested during the handshake, and that at least one certificate is required from the client, but that certificate is not required to be valid.
  • verifyclientcertifgiven indicates that a client certificate should be requested during the handshake, but does not require that the client sends a certificate. If the client does send a certificate it is required to be valid.
  • requireandverifyclientcert indicates that a client certificate should be requested during the handshake, and that at least one valid certificate is required to be sent by the client
nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  tls:
    client_auth_type: requireandverifyclientcert

crt_file The crt_file parameter is a child of the tls parameter. It specifies the certificate file. It is specified as a string and is optional.

nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  tls:
    crt_file: /certs/server-cert.pem

ignore_certificate_check The ignore_certificate_check parameter is a child of tls. It specifies whether to disable the certificate check for remote endpoints. It is specified as a Boolean and the default is false. It is optional.

nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  tls:
    ignore_certificate_check: true

key_file The key_file parameter is a child of the tls parameter. It specifies the key file. It is specified as a string and is optional.

nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  tls:
    key_file: /certs/server-key.pem

key_password The key_password parameter is a child of the tls parameter. It specifies the key password. When the private key_file location is provided, this file can also be provided to get the password of the private key. It is specified as a string and is optional.

nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  tls:
    key_password: secret

max_version The max_version parameter is a child of the tls parameter. It specifies the maximum version of TLS to accept. It is specified as a string and is optional.

You can select one of the following options:

  • TLSv1_0
  • TLSv1_1
  • TLSv1_2
  • TLSv1_3
nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  tls:
    max_version: TLSv1_2

min_version The min_version parameter is a child of the tls parameter. It specifies the minimum version of TLS to accept. It is specified as a string and is optional. The default is TLSv1_2.

You can select one of the following options:

  • TLSv1_0
  • TLSv1_1
  • TLSv1_2
  • TLSv1_3
nodes:
- name: prometheus_remote_write_output
  type: prometheus_remote_write_output
  endpoint: https://localhost:8087/api/v1/write
  tls:
    min_version: TLSv1_2

Note: Adjust TLS settings according to your security requirements to ensure data is transmitted securely.