This is documentation for the next version of Grafana Alloy Documentation. For the latest stable release, go to the latest version.
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.
The entire repository is cloned, and the module path is accessible via the module_path
keyword.
This enables, for example, your module to import other modules within the repository by setting relative paths in the import.file blocks.
Usage
import.git "<NAMESPACE>" {
repository = "<GIT_REPOSTORY>"
path = "<PATH_TO_MODULE>"
}
Arguments
You can use the following arguments with import.git
:
Name | Type | Description | Default | Required |
---|---|---|---|---|
path | string | The path in the repository where the module is stored. | yes | |
repository | string | The Git repository address to retrieve the module from. | yes | |
pull_frequency | duration | The frequency to pull the repository for updates. | "60s" | no |
revision | string | The Git revision to retrieve the module from. | "HEAD" | no |
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/alloy.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 an Alloy configuration file such as <FILE_NAME>.alloy
or <DIR_NAME>/<FILE_NAME>.alloy
or
a directory containing Alloy configuration files such as <DIR_NAME>
or .
if the Alloy configuration 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
You can use the following blocks with import.git
:
Block | Description | Required |
---|---|---|
basic_auth | Configure basic_auth for authenticating to the repository. | no |
ssh_key | Configure an SSH Key for authenticating to the repository. | no |
basic_auth
Name | Type | Description | Default | Required |
---|---|---|---|---|
password_file | string | File containing the basic auth password. | no | |
password | secret | Basic auth password. | no | |
username | string | Basic auth username. | no |
password
and password_file
are mutually exclusive, and only one can be provided inside a basic_auth
block.
ssh_key
Name | Type | Description | Default | Required |
---|---|---|---|---|
username | string | SSH username. | "" | yes |
key_file | string | SSH private key path. | "" | no |
key | secret | SSH private key. | no | |
passphrase | secret | Passphrase for SSH key if needed. | no |
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.alloy"
}
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
}