Send glusterfs logs to loki.
This commit is contained in:
@@ -17,7 +17,10 @@ job "vector" {
|
||||
config {
|
||||
image = "timberio/vector:0.28.X-alpine"
|
||||
ports = ["api"]
|
||||
volumes = ["/var/run/docker.sock:/var/run/docker.sock:ro"]
|
||||
volumes = [
|
||||
"/var/run/docker.sock:/var/run/docker.sock:ro",
|
||||
"/var/log/glusterfs:/var/log/glusterfs:ro",
|
||||
]
|
||||
}
|
||||
|
||||
env {
|
||||
@@ -48,17 +51,19 @@ job "vector" {
|
||||
left_delimiter = "[["
|
||||
right_delimiter = "]]"
|
||||
data=<<EOH
|
||||
data_dir = "alloc/data/vector/"
|
||||
data_dir = "alloc/data/"
|
||||
[api]
|
||||
enabled = true
|
||||
address = "0.0.0.0:8686"
|
||||
playground = false
|
||||
[sources.logs]
|
||||
|
||||
[sources.docker_raw]
|
||||
type = "docker_logs"
|
||||
[transforms.transformed]
|
||||
[transforms.docker_transformed]
|
||||
type = "remap"
|
||||
inputs = [ "logs" ]
|
||||
inputs = [ "docker_raw" ]
|
||||
source = '''
|
||||
.node = del(.label."com.hashicorp.nomad.node_name")
|
||||
.job_name, err = .label."com.hashicorp.nomad.job_name" + "." + .label."com.hashicorp.nomad.task_group_name" + "." + .label."com.hashicorp.nomad.task_name"
|
||||
result = parse_regex_all!(.message, r'^(?P<log>.+) (?P<total_requests>\d+) "(?P<frontend_name>.+)" "(?P<backend_url>.+)" (?P<duration_ms>\d+)ms$')
|
||||
if length(result) > 0 {
|
||||
@@ -69,9 +74,24 @@ if length(result) > 0 {
|
||||
.total_requests = to_int!(result[0].total_requests)
|
||||
}
|
||||
'''
|
||||
|
||||
[sources.glusterfs_raw]
|
||||
type = "file"
|
||||
include = [ "/var/log/glusterfs/**/*.log" ]
|
||||
host_key = "node"
|
||||
[transforms.glusterfs_transformed]
|
||||
type = "remap"
|
||||
inputs = [ "glusterfs_raw" ]
|
||||
source = '''
|
||||
.node = "[[env "attr.unique.hostname" ]]"
|
||||
'''
|
||||
|
||||
[sinks.loki]
|
||||
type = "loki"
|
||||
inputs = ["transformed"]
|
||||
inputs = [
|
||||
"docker_transformed",
|
||||
"glusterfs_transformed"
|
||||
]
|
||||
endpoint = "http://[[ range service "loki" ]][[ .Address ]]:[[ .Port ]][[ end ]]"
|
||||
encoding.codec = "json"
|
||||
buffer.type = "memory"
|
||||
@@ -81,7 +101,7 @@ if length(result) > 0 {
|
||||
healthcheck.enabled = true
|
||||
[sinks.loki.labels]
|
||||
job_name = "{{job_name}}"
|
||||
node = "{{label.\"com.hashicorp.nomad.node_name\" }}"
|
||||
node = "{{node}}"
|
||||
frontend_name = "{{frontend_name}}"
|
||||
EOH
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user