General availability (GA) Open source

prometheus.exporter.memcached

The prometheus.exporter.memcached component embeds the memcached_exporter for collecting metrics from a Memcached server.

Usage

Alloy
prometheus.exporter.memcached "<LABEL>" {
}

Arguments

You can use the following arguments with prometheus.exporter.memcached:

NameTypeDescriptionDefaultRequired
addressstringThe Memcached server address."localhost:11211"no
timeoutdurationThe timeout for connecting to the Memcached server."1s"no

Blocks

You can use the following block with prometheus.exporter.memcached:

tls_config

NameTypeDescriptionDefaultRequired
ca_pemstringCA PEM-encoded text to validate the server with.no
ca_filestringCA certificate to validate the server with.no
cert_pemstringCertificate PEM-encoded text for client authentication.no
cert_filestringCertificate file for client authentication.no
insecure_skip_verifyboolDisables validation of the server certificate.no
key_filestringKey file for client authentication.no
key_pemsecretKey PEM-encoded text for client authentication.no
min_versionstringMinimum acceptable TLS version.no
server_namestringServerName extension to indicate the name of the server.no

The following pairs of arguments are mutually exclusive and can’t both be set simultaneously:

  • ca_pem and ca_file
  • cert_pem and cert_file
  • key_pem and key_file

When configuring client authentication, both the client certificate (using cert_pem or cert_file) and the client key (using key_pem or key_file) must be provided.

When min_version isn’t provided, the minimum acceptable TLS version is inherited from Go’s default minimum version, TLS 1.2. If min_version is provided, it must be set to one of the following strings:

  • "TLS10" (TLS 1.0)
  • "TLS11" (TLS 1.1)
  • "TLS12" (TLS 1.2)
  • "TLS13" (TLS 1.3)

Caution

If you set insecure_skip_verify to true, you disable verification of the server’s certificate chain and hostname. Alloy accepts any certificate the server presents, including expired, self-signed, or invalid certificates.

You can use insecure_skip_verify for local development, self-signed certificates, or endpoints that use a private CA outside the system trust store. If the hostname doesn’t match the certificate, set server_name instead of insecure_skip_verify. In production, use ca_file or ca_pem to trust a private CA instead of insecure_skip_verify.

Set insecure_skip_verify to true only in isolated development or testing environments where you don’t transmit sensitive data. Remove the setting before you deploy to production.

Exported fields

The following fields are exported and can be referenced by other components.

NameTypeDescription
targetslist(map(string))The targets that can be used to collect exporter metrics.

For example, the targets can either be passed to a discovery.relabel component to rewrite the targets’ label sets or to a prometheus.scrape component that collects the exposed metrics.

The exported targets use the configured in-memory traffic address specified by the run command.

Component health

prometheus.exporter.memcached is only reported as unhealthy if given an invalid configuration. In those cases, exported fields retain their last healthy values.

Debug information

prometheus.exporter.memcached doesn’t expose any component-specific debug information.

Debug metrics

prometheus.exporter.memcached doesn’t expose any component-specific debug metrics.

Example

The following example uses a prometheus.exporter.memcached component to collect metrics from a Memcached server running locally, and scrapes the metrics using a prometheus.scrape component:

Alloy
prometheus.exporter.memcached "example" {
  address = "localhost:13321"
  timeout = "5s"
}

prometheus.scrape "example" {
  targets    = prometheus.exporter.memcached.example.targets
  forward_to = [prometheus.remote_write.demo.receiver]
}

prometheus.remote_write "demo" {
  endpoint {
    url = "<PROMETHEUS_REMOTE_WRITE_URL>"

    basic_auth {
      username = "<USERNAME>"
      password = "<PASSWORD>"
    }
  }
}

Replace the following:

  • <PROMETHEUS_REMOTE_WRITE_URL>: The URL of the Prometheus remote_write compatible server to send metrics to.
  • <USERNAME>: The username to use for authentication to the remote_write API.
  • <PASSWORD>: The password to use for authentication to the remote_write API.

Compatible components

prometheus.exporter.memcached has exports that can be consumed by the following components:

Note

Connecting some components may not be sensible or components may require further configuration to make the connection work correctly. Refer to the linked documentation for more details.