Caution
Grafana Agent has reached End-of-Life (EOL) on November 1, 2025. Agent is no longer receiving vendor support and will no longer receive security or bug fixes. Current users of Agent Static mode, Agent Flow mode, and Agent Operator should proceed with migrating to Grafana Alloy. If you have already migrated to Alloy, no further action is required. Read more about why we recommend migrating to Grafana Alloy.
import.git
The import.git block imports custom components from a Git repository and exposes them to the importer.
import.git blocks must be given a label that determines the namespace where custom components are exposed.
Usage
import.git "NAMESPACE" {
repository = "GIT_REPOSTORY"
path = "PATH_TO_MODULE"
}Arguments
The following arguments are supported:
The repository attribute must be set to a repository address that would be
recognized by Git with a git clone REPOSITORY_ADDRESS command, such as
https://github.com/grafana/agent.git.
You must set the repository attribute to a repository address that Git would recognize
with a git clone REPOSITORY_ADDRESS command, such as https://github.com/grafana/agent.git.
When provided, the revision attribute must be set to a valid branch, tag, or
commit SHA within the repository.
You must set the path attribute to a path accessible from the repository’s root.
It can either be a River file such as FILE_NAME.river or DIR_NAME/FILE_NAME.river or
a directory containing River files such as DIR_NAME or . if the River files are stored at the root
of the repository.
If pull_frequency isn’t "0s", the Git repository is pulled for updates at the frequency specified.
If it’s set to "0s", the Git repository is pulled once on init.
Warning
Pulling hosted Git repositories too often can result in throttling.
Blocks
The following blocks are supported inside the definition of import.git:
basic_auth block
password and password_file are mutually exclusive, and only one can be provided inside a basic_auth block.
ssh_key block
Examples
This example imports custom components from a Git repository and uses a custom component to add two numbers:
import.git "math" {
repository = "https://github.com/wildum/module.git"
revision = "master"
path = "math.river"
}
math.add "default" {
a = 15
b = 45
}This example imports custom components from a directory in a Git repository and uses a custom component to add two numbers:
import.git "math" {
repository = "https://github.com/wildum/module.git"
revision = "master"
path = "modules"
}
math.add "default" {
a = 15
b = 45
}


