Overview
The Loki output will stream analytics and insights to your Loki endpoint.
Review Parameters
Review the following parameters that you can configure in the Edge Delta App:
Parameter | Description |
name |
Enter a descriptive name for the output or integration. For outputs, this name will be used to map this destination to a workflow. This parameter is required. Review the following example: name: loki-integration |
integration_name |
This parameter only appears when you create an individual output. This parameter refers to the organization-level integration created in the Integrations page. If you enter this name, then the rest of the fields will be automatically populated. If you need to add multiple instances of the same integration into the config, then you can add a custom name to each instance via the name field. In this situation, the name should be used to refer to the specific instance of the destination in the workflows. This parameter is optional. Review the following example: integration_name: orgs-kafka |
type |
Enter loki. This parameter is required. Review the following example: type: loki |
endpoint |
Enter the Loki endpoint. This parameter is required. Review the following example: endpoint: "https://localhost:3000/loki/api/v1/push" |
user |
Enter the username for Loki. This parameter is optional. Review the following example: user: "user" |
api_key |
Enter the Loki API key. This parameter is optional. Review the following example: api_key: "api_key" |
alert_as_log |
Enter true to send alerts as a log.
Enter false to send alerts as events. This parameter is optional. Review the following example: alert_as_log: true |
custom_tags |
This parameter defines key-value pairs that are streamed with every request. This parameter supports templating. This parameter is optional. Review the following example: custom_tags: "app": "test" "region": "us-west-2" "File Path": "{{.FileGlobPath}}" "K8s PodName": "{{.K8sPodName}}" "K8s Namespace": "{{.K8sNamespace}}" "K8s ControllerKind": "{{.K8sControllerKind}}" "K8s ContainerName": "{{.K8sContainerName}}" "K8s ContainerImage": "{{.K8sContainerImage}}" "K8s ControllerLogicalName": "{{.K8sControllerLogicalName}}" "ECSCluster": "{{.ECSCluster}}" "ECSContainerName": "{{.ECSContainerName}}" "ECSTaskVersion": "{{.ECSTaskVersion}}" "ECSTaskFamily": "{{.ECSTaskFamily}}" "DockerContainerName": "{{.DockerContainerName}}" "ConfigID": "{{.ConfigID}}" "Host": "{{.Host}}" "Source": "{{.Source}}" "SourceType": "{{.So |
message_template |
This parameter customizes the message content. This parameter supports templating. This parameter is optional. Review the following example: message_template: "File Path": "{{.FileGlobPath}}" "K8s PodName": "{{.K8sPodName}}" "K8s Namespace": "{{.K8sNamespace}}" "K8s ControllerKind": "{{.K8sControllerKind}}" "K8s ContainerName": "{{.K8sContainerName}}" "K8s ContainerImage": "{{.K8sContainerImage}}" "K8s ControllerLogicalName": "{{.K8sControllerLogicalName}}" "ECSCluster": "{{.ECSCluster}}" "ECSContainerName": "{{.ECSContainerName}}" "ECSTaskVersion": "{{.ECSTaskVersion}}" "ECSTaskFamily": "{{.ECSTaskFamily}}" "DockerContainerName": "{{.DockerContainerName}}" "ConfigID": "{{.ConfigID}}" "Host": "{{.Host}}" "Source": "{{.Source}}" "SourceType": "{{.SourceType}}" "Tag": "{{.Tag}}" |
features |
This parameter defines which data types to stream to the destination. You can enter log, edac, and / or cluster pattern. To learn more, review the Review Feature Types section in Stream Outputs and Integrations Overview. This parameter is optional. Review the following example: features: log |
buffer_ttl |
Enter a length of time to retry failed streaming data. After this length of time is reached, the failed streaming data will no longer be tried. This parameter is optional. Review the following example: buffer_ttl: 2h |
buffer_path |
Enter a folder path to temporarily store failed streaming data. The failed streaming data will be retried until the data reaches its destinations or until the Buffer TTL value is reached. If you enter a path that does not exist, then the agent will create directories, as needed. This parameter is optional. Review the following example: buffer_path: /var/log/edgedelta/pushbuffer/ |
buffer_max_bytesize |
Enter the maximum size of failed streaming data that you want to retry. If the failed streaming data is larger than this size, then the failed streaming data will not be retried. This parameter is optional. Review the following example: buffer_max_bytesize: 100MB |
As an optional step, you can customize the message payload and custom tags that are sent to a Loki destination.
- Loki does not support the dash ( - ) character as a key value.
Review the following template fields:
Field | Description |
Tag | This field is the user-defined tag that describes the environment, such as prod_us_west_2_cluster. |
Host | This field is the hostname of the environment where the agent is running on. |
ConfigID | This field is the configuration ID of the corresponding agent. |
Source | This field is the source name, specifically the identifier of the source, such as docker container id or file name. |
SourceType | This field is the source type, such as Docker or system. |
FileGlobPath | This field is the file global path. |
K8sPodName | This field is the Kubernetes pod name. |
K8sNamespace | This field is the Kubernetes namespace. |
K8sControllerKind | This field is the Kubernetes controller kind. |
K8sContainerName | This field is the Kubernetes container name. |
K8sContainerImage | This field is the Kubernetes container image. |
K8sControllerLogicalName | This field is the Kubernetes controller logical name. |
ECSCluster | This field is the ECS cluster name. |
ECSContainerName | This field is the ECS container name. |
ECSTaskVersion | This field is the ECS task version. |
ECSTaskFamily | This field is the ECS task family. |
DockerContainerName | This field is the Docker container name. |
Review Sample Configuration
The following sample configuration displays an output without the name of the organization-level integration:
- name: loki-integration
type: loki
endpoint: "https://localhost:3000/loki/api/v1/push"
api_key: "api_key"
user: "user"
custom_tags:
"app": "test"
"region": "us-west-2"
message_template:
"File Path": "{{.FileGlobPath}}"
"K8s PodName": "{{.K8sPodName}}"
"K8s Namespace": "{{.K8sNamespace}}"
"K8s ControllerKind": "{{.K8sControllerKind}}"
"K8s ContainerName": "{{.K8sContainerName}}"
"K8s ContainerImage": "{{.K8sContainerImage}}"
"K8s ControllerLogicalName": "{{.K8sControllerLogicalName}}"
"ECSCluster": "{{.ECSCluster}}"
"ECSContainerName": "{{.ECSContainerName}}"
"ECSTaskVersion": "{{.ECSTaskVersion}}"
"ECSTaskFamily": "{{.ECSTaskFamily}}"
"DockerContainerName": "{{.DockerContainerName}}"
"ConfigID": "{{.ConfigID}}"
"Host": "{{.Host}}"
"Source": "{{.Source}}"
"SourceType": "{{.SourceType}}"
"Tag": "{{.Tag}}"