This is documentation for the next version of Grafana Alloy Documentation. For the latest stable release, go to the latest version.

General availability (GA) Open source

logging

logging is an optional configuration block used to customize how Alloy produces log messages. logging is specified without a label and can only be provided once per configuration file.

Usage

Alloy
logging {

}

Arguments

You can use the following arguments with logging:

NameTypeDescriptionDefaultRequired
formatstringFormat to use for writing log lines"logfmt"no
levelstringLevel at which log lines should be written"info"no
write_tolist(LogsReceiver)List of receivers to send log entries to[]no

Log level

The following strings are recognized as valid log levels:

  • "error": Only write logs at the error level.
  • "warn": Only write logs at the warn level or above.
  • "info": Only write logs at info level or above.
  • "debug": Write all logs, including debug level logs.

Log format

The following strings are recognized as valid log line formats:

  • "json": Write logs as JSON objects.
  • "logfmt": Write logs as logfmt lines.

Log receivers

The write_to argument allows Alloy to tee its log entries to one or more loki.* component log receivers in addition to the default location. This, for example can be the export of a loki.write component to send log entries directly to Loki, or a loki.relabel component to add a certain label first.

Log location

Alloy writes all logs to stderr.

When you run Alloy as a systemd service, you can view logs written to stderr through journald.

When you run Alloy as a container, you can view logs written to stderr through docker logs or kubectl logs, depending on whether Docker or Kubernetes was used for deploying Alloy.

When you run Alloy as a Windows service, logs are written as event logs. You can view the logs through Event Viewer.

In other cases, redirect stderr of the Alloy process to a file for logs to persist on disk.

Retrieve logs

You can retrieve the logs in different ways depending on your platform and installation method:

Linux:

  • If you’re running Alloy with systemd, use journalctl -u alloy.
  • If you’re running Alloy in a Docker container, use docker logs CONTAINER_ID.

macOS:

  • If you’re running Alloy with Homebrew as a service, use brew services info grafana/grafana/alloy to check status and tail -f $(brew --prefix)/var/log/alloy.log for logs.
  • If you’re running Alloy with launchd, use log show --predicate 'process == "alloy"' --info or check /usr/local/var/log/alloy.log.
  • If you’re running Alloy in a Docker container, use docker logs CONTAINER_ID.

Windows:

  • If you’re running Alloy as a Windows service, check the Windows Event Viewer under Windows Logs > Application for Alloy-related events.
  • If you’re running Alloy that is manually installed, check the log files in %PROGRAMDATA%\Grafana\Alloy\logs\ or the directory specified in your configuration.
  • If you’re running Alloy in a Docker container, use docker logs CONTAINER_ID.

All platforms:

  • Alloy writes logs to stderr if started directly without a service manager.

Example

Alloy
logging {
  level  = "info"
  format = "logfmt"
}