etcd
etcdis a distributed key-value store that provides a reliable way to store data across a cluster of machines. If etcd is installed on your environment, the Sysdig agent will automatically connect. If you are using ectd older than version 2, you may need to edit the default entries to connect. See the Default Configuration section, below.
The Sysdig Agent automatically collects all metrics.
This page describes the default configuration settings, how to edit the configuration to collect additional information, the metrics available for integration, and a sample result in the Sysdig Monitor UI.
etcd Versions
etcd v2
The app check functionality described on this page supports etcd metrics from APIs that are specific to v2 of etcd.
These APIs are present in etcd v3 as well, but export metrics only for the v2 datastores. For example, after upgrading from etcd v2 to v3, if the v2 datastores are not migrated to v3, the v2 APIs will continue exporting metrics for these datastores. If the v2 datastores are migrated to v3, the v2 APIs will no longer export metrics for these datastores.
etcd v3
etcd v3 uses a native Prometheus exporter. The exporter only exports metrics for v3 datastores. For example, after upgrading from etcd v2 to v3, if v2 datastores are not migrated to v3, the Prometheus endpoint will not export metrics for these datastores. The Prometheus endpoint will only export metrics for datastores migrated to v3 or datastores created after the upgrade to v3.
If your etcd version is v3 or higher, use the information on this page to enable an integration: Integrate Prometheus Metrics.
etcd Setup
etcd will automatically expose all metrics. You do not need to add anything to the etcd instance.
Sysdig Agent Configuration
Review how to Edit dragent.yaml to Integrate or Modify Application Checks.
The default agent configuration for etcd will look for the application
on localhost, port 2379.
No customization is required.
Default Configuration
By default, Sysdig’s dragent.default.yaml
uses the following code to
connect with etcd and collect all metrics.
app_checks:
- name: etcd
pattern:
comm: etcd
conf:
url: "http://localhost:2379"
etcd (before version 2) does not listen on localhost
, so the Sysdig
agent will not connect to it automatically. In such case, you may need
edit the dragent.yaml
file with the hostname and port. See Example 1.
Alternatively, you can add the option -bind-addr 0.0.0.0:4001
to the
etcd command line to allow the agent to connect.
Remember! Never edit dragent.default.yaml
directly; always edit
only dragent.yaml
.
Example 1
You can use {hostname}
and {port}
as a tokens in the conf:
section. This is the recommended setting for Kubernetes customers.
app_checks:
- name: etcd
pattern:
comm: etcd
conf:
url: "http://{hostname}:{port}"
Alternatively you can specify the real hostname and port.
app_checks:
- name: etcd
pattern:
comm: etcd
conf:
url: "http://my_hostname:4000" #etcd service listening on port 4000
Example 2: SSL/TLS Certificate
If encryption is used, add the appropriate SSL/TLS entries. Provide
correct path of SSL/TLS key and certificates used in etcd configuration
in fields ssl_keyfile, ssl_certfile, ssl_ca_certs
.
app_checks:
- name: etcd
pattern:
comm: etcd
conf:
url: "https://localhost:PORT"
ssl_keyfile: /etc/etcd/peer.key # Path to key file
ssl_certfile: /etc/etcd/peer.crt # Path to SSL certificate
ssl_ca_certs: /etc/etcd/ca.crt # Path to CA certificate
ssl_cert_validation: True
Metrics Available
See etcd Metrics.
Result in the Monitor UI
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.