Caution
Grafana Alloy is the new name for our distribution of the OTel collector. Grafana Agent has been deprecated and is in Long-Term Support (LTS) through October 31, 2025. Grafana Agent will reach an End-of-Life (EOL) on November 1, 2025. Read more about why we recommend migrating to Grafana Alloy.
Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
Migrate from Grafana Agent Static to Grafana Agent Flow
The built-in Grafana Agent convert command can migrate your Static configuration to a Grafana Agent Flow configuration.
This topic describes how to:
- Convert a Grafana Agent Static configuration to a Grafana Agent Flow configuration.
- Run a Grafana Agent Static configuration natively using Grafana Agent Flow.
Components used in this topic
Before you begin
- You must have an existing Grafana Agent Static configuration.
- You must be familiar with the Components concept in Grafana Agent Flow.
Convert a Grafana Agent Static configuration
To fully migrate Grafana Agent Static to Grafana Agent Flow, you must convert your Static configuration into a Grafana Agent Flow configuration. This conversion will enable you to take full advantage of the many additional features available in Grafana Agent Flow.
In this task, we will use the convert CLI command to output a Grafana Agent Flow configuration from a Static configuration.
Open a terminal window and run the following command:
AGENT_MODE=flow grafana-agent convert --source-format=static --output=OUTPUT_CONFIG_PATH INPUT_CONFIG_PATH
grafana-agent-flow convert --source-format=static --output=OUTPUT_CONFIG_PATH INPUT_CONFIG_PATH
Replace the following:
INPUT_CONFIG_PATH
: The full path to the Static configuration.OUTPUT_CONFIG_PATH
: The full path to output the Grafana Agent Flow configuration.
Start Grafana Agent Flow using the new Grafana Agent Flow configuration from
OUTPUT_CONFIG_PATH
:
Debugging
If the convert command cannot convert aStatic configuration, diagnostic information is sent to
stderr
. You can use the--bypass-errors
flag to bypass any non-critical issues and output the Grafana Agent Flow configuration using a best-effort conversion.Caution
If you bypass the errors, the behavior of the converted configuration may not match the originalStatic configuration. Make sure you fully test the converted configuration before using it in a production environment.AGENT_MODE=flow grafana-agent convert --source-format=static --bypass-errors --output=OUTPUT_CONFIG_PATH INPUT_CONFIG_PATH
grafana-agent-flow convert --source-format=static --bypass-errors --output=OUTPUT_CONFIG_PATH INPUT_CONFIG_PATH
You can use the
--report
flag to output a diagnostic report.AGENT_MODE=flow grafana-agent convert --source-format=static --report=OUTPUT_REPORT_PATH --output=OUTPUT_CONFIG_PATH INPUT_CONFIG_PATH
grafana-agent-flow convert --source-format=static --report=OUTPUT_REPORT_PATH --output=OUTPUT_CONFIG_PATH INPUT_CONFIG_PATH ```
- Replace
OUTPUT_REPORT_PATH
with the output path for the report.
Using the example Grafana Agent Static configuration below, the diagnostic report provides the following information:
(Warning) Please review your agent command line flags and ensure they are set in your Flow mode config file where necessary.
- Replace
Run a Static mode configuration
If you’re not ready to completely switch to a Grafana Agent Flow configuration, you can run
Grafana Agent using your existing Grafana Agent Static configuration.
The --config.format=static
flag tells Grafana Agent to convert yourStatic
configuration to Grafana Agent Flow and load it directly without saving the new
configuration. This allows you to try Grafana Agent Flow without modifying your existing
Grafana Agent Static configuration infrastructure.
In this task, we will use the run CLI command to run Grafana Agent Flow using a Static configuration.
Start Grafana Agent Flow and include the command line flag
--config.format=static
. Your configuration file must be a validStatic
configuration file.
Debugging
You can follow the convert CLI command debugging instructions to generate a diagnostic report.
Refer to the Grafana Agent Flow DebuggingUI for more information about running Grafana Agent Flow.
If yourStatic configuration can’t be converted and loaded directly into Grafana Agent Flow, diagnostic information is sent to
stderr
. You can use the--config.bypass-conversion-errors
flag with--config.format=static
to bypass any non-critical issues and start Grafana Agent Flow.Caution
If you bypass the errors, the behavior of the converted configuration may not match the original Grafana Agent Static configuration. Do not use this flag in a production environment.
Example
This example demonstrates converting aStatic configuration file to a Grafana Agent Flow configuration file.
The followingStatic configuration file provides the input for the conversion:
server:
log_level: info
metrics:
global:
scrape_interval: 15s
remote_write:
- url: https://prometheus-us-central1.grafana.net/api/prom/push
basic_auth:
username: USERNAME
password: PASSWORD
configs:
- name: test
host_filter: false
scrape_configs:
- job_name: local-agent
static_configs:
- targets: ['127.0.0.1:12345']
labels:
cluster: 'localhost'
logs:
global:
file_watch_config:
min_poll_frequency: 1s
max_poll_frequency: 5s
positions_directory: /var/lib/agent/data-agent
configs:
- name: varlogs
scrape_configs:
- job_name: varlogs
static_configs:
- targets:
- localhost
labels:
job: varlogs
host: mylocalhost
__path__: /var/log/*.log
pipeline_stages:
- match:
selector: '{filename="/var/log/*.log"}'
stages:
- drop:
expression: '^[^0-9]{4}'
- regex:
expression: '^(?P<timestamp>\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}) \[(?P<level>[[:alpha:]]+)\] (?:\d+)\#(?:\d+): \*(?:\d+) (?P<message>.+)$'
- pack:
labels:
- level
clients:
- url: https://USER_ID:API_KEY@logs-prod3.grafana.net/loki/api/v1/push
The convert command takes the YAML file as input and outputs a River file.
AGENT_MODE=flow grafana-agent convert --source-format=static --output=OUTPUT_CONFIG_PATH INPUT_CONFIG_PATH
grafana-agent-flow convert --source-format=static --output=OUTPUT_CONFIG_PATH INPUT_CONFIG_PATH
The new Grafana Agent Flow configuration file looks like this:
prometheus.scrape "metrics_test_local_agent" {
targets = [{
__address__ = "127.0.0.1:12345",
cluster = "localhost",
}]
forward_to = [prometheus.remote_write.metrics_test.receiver]
job_name = "local-agent"
scrape_interval = "15s"
}
prometheus.remote_write "metrics_test" {
endpoint {
name = "test-3a2a1b"
url = "https://prometheus-us-central1.grafana.net/api/prom/push"
basic_auth {
username = "USERNAME"
password = "PASSWORD"
}
queue_config { }
metadata_config { }
}
}
local.file_match "logs_varlogs_varlogs" {
path_targets = [{
__address__ = "localhost",
__path__ = "/var/log/*.log",
host = "mylocalhost",
job = "varlogs",
}]
}
loki.process "logs_varlogs_varlogs" {
forward_to = [loki.write.logs_varlogs.receiver]
stage.match {
selector = "{filename=\"/var/log/*.log\"}"
stage.drop {
expression = "^[^0-9]{4}"
}
stage.regex {
expression = "^(?P<timestamp>\\d{4}/\\d{2}/\\d{2} \\d{2}:\\d{2}:\\d{2}) \\[(?P<level>[[:alpha:]]+)\\] (?:\\d+)\\#(?:\\d+): \\*(?:\\d+) (?P<message>.+)$"
}
stage.pack {
labels = ["level"]
ingest_timestamp = false
}
}
}
loki.source.file "logs_varlogs_varlogs" {
targets = local.file_match.logs_varlogs_varlogs.targets
forward_to = [loki.process.logs_varlogs_varlogs.receiver]
file_watch {
min_poll_frequency = "1s"
max_poll_frequency = "5s"
}
}
loki.write "logs_varlogs" {
endpoint {
url = "https://USER_ID:API_KEY@logs-prod3.grafana.net/loki/api/v1/push"
}
external_labels = {}
}
Limitations
Configuration conversion is done on a best-effort basis. Grafana Agent will issue warnings or errors where the conversion cannot be performed.
Once the configuration is converted, we recommend that you review the Grafana Agent Flow configuration file, and verify that it is correct before starting to use it in a production environment.
Furthermore, we recommend that you review the following checklist:
- The following configuration options aren’t available for conversion to Grafana Agent Flow: Integrations next, Traces, and Agent Management. Any additional unsupported features are returned as errors during conversion.
- There is no gRPC server to configure for Grafana Agent Flow, as any non-default configuration will show as unsupported during the conversion.
- Check if you are using any extra command line arguments with Static that aren’t present in your configuration file. For example,
-server.http.address
. - Check if you are using any environment variables in your Static configuration. These will be evaluated during conversion and you may want to replace them with the Grafana Agent Flow Standard library env function after conversion.
- Review additional Prometheus Limitations for limitations specific to your Metrics configuration.
- Review additional Promtail Limitations for limitations specific to your Logs configuration.
- The logs produced by Grafana Agent Flow mode will differ from those produced by Static.
- Grafana Agent exposes the Grafana Agent Flow UI.