Docs » Configure application receivers » Configure application receivers for databases » etcd server

etcd server 🔗

Description 🔗

The Splunk Distribution of OpenTelemetry Collector provides this integration as the etcd monitor via the Smart Agent Receiver.

This monitor reports etcd server metrics under the /metrics path on its client port and optionally on locations given by --listen-metrics-urls.

Installation 🔗

This monitor is available in the SignalFx Smart Agent Receiver, which is part of the Splunk OpenTelemetry Collector.

To install this integration:

  1. Deploy the Splunk Distribution of OpenTelemetry Collector to your host or container platform.

  2. Configure the monitor, as described in the next section.

Configuration 🔗

The Splunk Distribution of OpenTelemetry Collector allows embedding a Smart Agent monitor configuration in an associated Smart Agent Receiver instance.

Note: Providing an etcd monitor entry in your Smart Agent or Collector configuration is required for its use. Use the appropriate form for your agent type.

Smart Agent 🔗

To activate this monitor in the Smart Agent, add the following to your agent configuration. Note that this configuration assumes that the client certificate and key are accessible by the Smart Agent in the specified path:

monitors:  # All monitor config goes under this key
 - type: etcd
   ...  # Additional config

See Smart Agent example configuration for an autogenerated example of a YAML configuration file, with default values where applicable.

Splunk Distribution of OpenTelemetry Collector 🔗

To activate this monitor in the OpenTelemetry Collector, add the following to your agent configuration:

receivers:
  smartagent/etcd:
    type: etcd
    ... # Additional config

To complete the monitor activation, you must also include the smartagent/etcd receiver item in a metrics pipeline. To do this, add the receiver item to the service > pipelines > metrics > receivers section of your configuration file.

See configuration examples for specific use cases that show how the collector can integrate and complement existing environments.

Example configurations 🔗

The following is an example configuration for this monitor:

monitors:
- type: etcd
  discoveryRule: kubernetes_pod_name =~ "etcd" && target == "pod"
  port: 2379
  useHTTPS: true
  skipVerify: true
  sendAllMetrics: true
  clientCertPath: /var/lib/minikube/certs/etcd/server.crt
  clientKeyPath: /var/lib/minikube/certs/etcd/server.key
  extraDimensions:
    metric_source: etcd

The following table shows the configuration options for this monitor:

Option Required Type Description
httpTimeout no int64 HTTP timeout duration for both read and writes. This should be a duration string that is accepted by https://golang.org/pkg/time/#ParseDuration (default: 10s)
username no string Basic Auth username to use on each request, if any.
password no string Basic Auth password to use on each request, if any.
useHTTPS no bool If true, the agent will connect to the server using HTTPS instead of plain HTTP. (default: false)
httpHeaders no map of strings A map of HTTP header names to values. Comma separated multiple values for the same message-header is supported.
skipVerify no bool If useHTTPS is true and this option is also true, the exporter's TLS cert will not be verified. (default: false)
caCertPath no string Path to the CA cert that has signed the TLS cert, unnecessary if skipVerify is set to false.
clientCertPath no string Path to the client TLS cert to use for TLS required connections
clientKeyPath no string Path to the client TLS key to use for TLS required connections
host yes string Host of the exporter
port yes integer Port of the exporter
useServiceAccount no bool Use pod service account to authenticate. (default: false)
metricPath no string Path to the metrics endpoint on the exporter server, usually /metrics (the default). (default: /metrics)
sendAllMetrics no bool Send all the metrics that come out of the Prometheus exporter without any filtering. This option has no effect when using the prometheus exporter monitor directly since there is no built-in filtering, only when embedding it in other monitors. (default: false)

Metrics 🔗

These are the metrics available for this integration.