-
Notifications
You must be signed in to change notification settings - Fork 436
Open
Labels
bugSomething isn't workingSomething isn't workingc/loki.writegood first issueGood for newcomersGood for newcomers
Description
Component(s)
loki.write
What's wrong?
https://grafana.com/docs/alloy/latest/reference/components/loki/loki.write/ states:
Any labels that start with __ are removed before sending to the endpoint.
While implementing a logs pipeline I got the following error:
provisioned-o11y-alloy-1 alloy ts=2025-09-12T11:25:06.632943746Z level=error msg="final error sending batch" component_path=/ component_id=loki.write.provisioned_logs component=client host=logs.example.org status=400 tenant=provisioned-0dbdbdc402d24ac894e2bec924696531 error="server returned HTTP status 400 Bad Request (400): entry for stream '{__address__=\"192.168.144.155:10250\", __meta_kubernetes_node_address_Hostname=\"6191a3ad-f0fa-456f-9217-3020989c3a6d-59777554db-wmzsw\", __meta_kubernetes_node_address_InternalIP=\"192.168.144.155\", __meta_kubernetes_node_annotation_alpha_kubernetes_io_provided_node_ip=\"192.168.144.155\", __meta_kubernetes_node_annotation_cluster_k8s_io_machine=\"6191a3ad-f0fa-456f-9217-3020989c3a6d/6191a3ad-f0fa-456f-9217-3020989c3a6d-59777554db-wmzsw\", __meta_kubernetes_node_annotation_csi_volume_kubernetes_io_nodeid=\"{\\\"cinder.csi.openstack.org\\\":\\\"655d466a-ad4b-4b13-bcbc-c2bb42484fb7\\\"}\", __meta_kubernetes_node_annotation_network_cilium_io_ipv4_cilium_host=\"172.28.3.181\", __meta_kubernetes_node_annotation_network_cilium_io_ipv4_health_ip=\"172.28.3.161\", __meta_kubernetes_node_annotation_network_cilium_io_ipv4_pod_cidr=\"172.28.3.0/24\", __meta_kubernetes_node_annotation_node_alpha_kubernetes_io_ttl=\"0\", __meta_kubernetes_node_annotation_volumes_kubernetes_io_controller_managed_attach_detach=\"true\", __meta_kuber"
loki.write
clearly send __
labels to Loki.
Steps to reproduce
docker-compose.yaml
networks:
loki:
services:
loki:
image: grafana/loki:latest
container_name: loki
command: -config.file=/etc/loki/local-config.yaml
healthcheck:
test: wget --quiet --tries=1 --output-document=- http://localhost:3100/ready | grep -q -w ready || exit 1
start_period: 20s
interval: 10s
timeout: 1s
retries: 12 # try for 2 minutes
ports:
- "3100:3100"
networks:
- loki
alloy:
image: grafana/alloy:latest
ports:
- "12345:12345"
command: run --server.http.listen-addr=0.0.0.0:12345 --storage.path=/var/lib/alloy/data /etc/alloy/config.alloy
volumes:
- ./config.alloy:/etc/alloy/config.alloy
networks:
- loki
depends_on:
loki:
condition: service_healthy
- Config from below.
System information
Software version
Grafana Alloy v1.10.2, Grafana Loki 3.5.5
Configuration
loki.write "provisioned_logs" {
endpoint {
url = "http://loki:3100/loki/api/v1/push"
}
}
loki.source.file "dpkg_log" {
targets = [
{__path__ = "/var/log/dpkg.log"},
]
forward_to = [loki.relabel.generate_labels.receiver]
}
loki.relabel "generate_labels" {
forward_to = [loki.write.provisioned_logs.receiver]
rule {
target_label = "__foo1"
replacement = "bar"
}
rule {
target_label = "__foo2"
replacement = "bar"
}
rule {
target_label = "__foo3"
replacement = "bar"
}
rule {
target_label = "__foo4"
replacement = "bar"
}
rule {
target_label = "__foo5"
replacement = "bar"
}
rule {
target_label = "__foo6"
replacement = "bar"
}
rule {
target_label = "__foo7"
replacement = "bar"
}
rule {
target_label = "__foo8"
replacement = "bar"
}
rule {
target_label = "__foo9"
replacement = "bar"
}
rule {
target_label = "__foo10"
replacement = "bar"
}
rule {
target_label = "__foo11"
replacement = "bar"
}
rule {
target_label = "__foo12"
replacement = "bar"
}
rule {
target_label = "__foo13"
replacement = "bar"
}
rule {
target_label = "__foo14"
replacement = "bar"
}
rule {
target_label = "__foo15"
replacement = "bar"
}
}
Logs
loki | level=info ts=2025-09-12T12:57:27.484485013Z caller=main.go:126 msg="Starting Loki" version="(version=3.5.5, branch=release-3.5.x, revision=5aa8bd27)"
loki | level=info ts=2025-09-12T12:57:27.484516346Z caller=main.go:127 msg="Loading configuration file" filename=/etc/loki/local-config.yaml
loki | level=info ts=2025-09-12T12:57:27.488224471Z caller=server.go:368 msg="server listening on addresses" http=[::]:3100 grpc=[::]:9095
loki | level=info ts=2025-09-12T12:57:27.49158218Z caller=table_manager.go:136 index-store=tsdb-2020-10-24 msg="uploading tables"
loki | level=info ts=2025-09-12T12:57:27.491634055Z caller=table_manager.go:300 index-store=tsdb-2020-10-24 msg="query readiness setup completed" duration=1.333µs distinct_users_len=0 distinct_users=
loki | level=info ts=2025-09-12T12:57:27.491672263Z caller=shipper.go:165 index-store=tsdb-2020-10-24 msg="starting index shipper in RW mode"
loki | level=info ts=2025-09-12T12:57:27.491939555Z caller=head_manager.go:311 index-store=tsdb-2020-10-24 component=tsdb-head-manager msg="loaded wals by period" groups=0
loki | level=info ts=2025-09-12T12:57:27.491980972Z caller=manager.go:86 index-store=tsdb-2020-10-24 component=tsdb-manager msg="loaded leftover local indices" err=null successful=true buckets=0 indices=0 failures=0
loki | level=info ts=2025-09-12T12:57:27.491989555Z caller=head_manager.go:311 index-store=tsdb-2020-10-24 component=tsdb-head-manager msg="loaded wals by period" groups=0
loki | level=info ts=2025-09-12T12:57:27.49498193Z caller=mapper.go:47 msg="cleaning up mapped rules directory" path=/loki/rules-temp
loki | level=info ts=2025-09-12T12:57:27.495657222Z caller=worker.go:131 component=querier msg="Starting querier worker using query-scheduler and scheduler ring for addresses"
loki | level=info ts=2025-09-12T12:57:27.509311097Z caller=module_service.go:82 msg=starting module=server
loki | level=info ts=2025-09-12T12:57:27.509347555Z caller=module_service.go:82 msg=starting module=cache-generation-loader
loki | level=info ts=2025-09-12T12:57:27.509366097Z caller=module_service.go:82 msg=starting module=query-frontend-tripperware
loki | level=info ts=2025-09-12T12:57:27.509368472Z caller=module_service.go:82 msg=starting module=memberlist-kv
loki | level=info ts=2025-09-12T12:57:27.509389555Z caller=module_service.go:82 msg=starting module=query-scheduler-ring
loki | level=info ts=2025-09-12T12:57:27.509404472Z caller=module_service.go:82 msg=starting module=store
loki | level=info ts=2025-09-12T12:57:27.509419972Z caller=module_service.go:82 msg=starting module=ring
loki | level=info ts=2025-09-12T12:57:27.509571388Z caller=ring.go:361 msg="ring doesn't exist in KV store yet"
loki | level=info ts=2025-09-12T12:57:27.50957168Z caller=basic_lifecycler.go:301 msg="instance not found in the ring" instance=b3bb0f6bdd4e ring=scheduler
loki | level=info ts=2025-09-12T12:57:27.509612388Z caller=basic_lifecycler_delegates.go:63 msg="not loading tokens from file, tokens file path is empty"
loki | level=info ts=2025-09-12T12:57:27.509653513Z caller=ring.go:361 msg="ring doesn't exist in KV store yet"
loki | level=info ts=2025-09-12T12:57:27.509684805Z caller=module_service.go:82 msg=starting module=analytics
loki | level=info ts=2025-09-12T12:57:27.50970418Z caller=module_service.go:82 msg=starting module=ingester-querier
loki | level=info ts=2025-09-12T12:57:27.509716055Z caller=ringmanager.go:186 msg="waiting until scheduler is JOINING in the ring"
loki | level=info ts=2025-09-12T12:57:27.510810472Z caller=module_service.go:82 msg=starting module=compactor
loki | level=info ts=2025-09-12T12:57:27.510877597Z caller=ring.go:361 msg="ring doesn't exist in KV store yet"
loki | level=info ts=2025-09-12T12:57:27.510915263Z caller=module_service.go:82 msg=starting module=ingester
loki | level=info ts=2025-09-12T12:57:27.510916972Z caller=module_service.go:82 msg=starting module=rule-evaluator
loki | level=info ts=2025-09-12T12:57:27.510954805Z caller=module_service.go:82 msg=starting module=distributor
loki | level=info ts=2025-09-12T12:57:27.511000305Z caller=ingester.go:564 component=ingester msg="recovering from checkpoint"
loki | level=info ts=2025-09-12T12:57:27.511137597Z caller=recovery.go:41 component=ingester msg="no checkpoint found, treating as no-op"
loki | level=error ts=2025-09-12T12:57:27.511121638Z caller=ratestore.go:109 msg="error getting ingester clients" err="empty ring"
loki | level=info ts=2025-09-12T12:57:27.511180347Z caller=module_service.go:82 msg=starting module=ruler
loki | level=info ts=2025-09-12T12:57:27.511229888Z caller=ruler.go:533 msg="ruler up and running"
loki | level=info ts=2025-09-12T12:57:27.51127543Z caller=basic_lifecycler.go:301 msg="instance not found in the ring" instance=b3bb0f6bdd4e ring=compactor
loki | level=info ts=2025-09-12T12:57:27.51128293Z caller=basic_lifecycler_delegates.go:63 msg="not loading tokens from file, tokens file path is empty"
loki | level=info ts=2025-09-12T12:57:27.51131468Z caller=ring.go:361 component=distributor msg="ring doesn't exist in KV store yet"
loki | level=info ts=2025-09-12T12:57:27.511338722Z caller=compactor.go:443 msg="waiting until compactor is JOINING in the ring"
loki | level=info ts=2025-09-12T12:57:27.511389972Z caller=basic_lifecycler.go:301 component=distributor msg="instance not found in the ring" instance=b3bb0f6bdd4e ring=distributor
loki | level=info ts=2025-09-12T12:57:27.511369972Z caller=ingester.go:580 component=ingester msg="recovered WAL checkpoint recovery finished" elapsed=368.792µs errors=false
loki | level=info ts=2025-09-12T12:57:27.51149993Z caller=ingester.go:586 component=ingester msg="recovering from WAL"
loki | level=info ts=2025-09-12T12:57:27.511848097Z caller=ingester.go:602 component=ingester msg="WAL segment recovery finished" elapsed=852.125µs errors=false
loki | level=info ts=2025-09-12T12:57:27.511855305Z caller=ingester.go:550 component=ingester msg="closing recoverer"
loki | level=info ts=2025-09-12T12:57:27.511874388Z caller=ingester.go:558 component=ingester msg="WAL recovery finished" time=878.417µs
loki | level=info ts=2025-09-12T12:57:27.511955805Z caller=lifecycler.go:677 component=ingester msg="not loading tokens from file, tokens file path is empty"
loki | level=info ts=2025-09-12T12:57:27.511989722Z caller=lifecycler.go:704 component=ingester msg="instance not found in ring, adding with no tokens" ring=ingester
loki | level=info ts=2025-09-12T12:57:27.51201918Z caller=lifecycler.go:546 component=ingester msg="auto-joining cluster after timeout" ring=ingester
loki | level=info ts=2025-09-12T12:57:27.512066805Z caller=wal.go:157 msg=started component=wal
loki | level=info ts=2025-09-12T12:57:27.512108347Z caller=ingester.go:771 component=ingester msg="sleeping for initial delay before starting periodic flushing" delay=10.331352252s
loki | level=info ts=2025-09-12T12:57:27.627439805Z caller=compactor.go:447 msg="compactor is JOINING in the ring"
loki | level=info ts=2025-09-12T12:57:27.627556138Z caller=compactor.go:457 msg="waiting until compactor is ACTIVE in the ring"
loki | level=info ts=2025-09-12T12:57:27.641895138Z caller=ringmanager.go:190 msg="scheduler is JOINING in the ring"
loki | level=info ts=2025-09-12T12:57:27.642003138Z caller=ringmanager.go:199 msg="waiting until scheduler is ACTIVE in the ring"
loki | level=info ts=2025-09-12T12:57:27.777747347Z caller=compactor.go:461 msg="compactor is ACTIVE in the ring"
loki | level=info ts=2025-09-12T12:57:27.789692138Z caller=ringmanager.go:203 msg="scheduler is ACTIVE in the ring"
loki | level=info ts=2025-09-12T12:57:27.789795013Z caller=module_service.go:82 msg=starting module=query-scheduler
loki | level=info ts=2025-09-12T12:57:27.789904097Z caller=module_service.go:82 msg=starting module=query-frontend
loki | level=info ts=2025-09-12T12:57:27.789923888Z caller=module_service.go:82 msg=starting module=querier
loki | level=info ts=2025-09-12T12:57:27.789980222Z caller=loki.go:581 msg="Loki started" startup_time=359.314167ms
loki | level=info ts=2025-09-12T12:57:30.791217417Z caller=scheduler.go:653 msg="this scheduler is in the ReplicationSet, will now accept requests."
loki | level=info ts=2025-09-12T12:57:30.791401125Z caller=worker.go:232 component=querier msg="adding connection" addr=127.0.0.1:9095
loki | level=info ts=2025-09-12T12:57:32.780061251Z caller=compactor.go:522 msg="this instance has been chosen to run the compactor, starting compactor"
loki | level=info ts=2025-09-12T12:57:32.780198668Z caller=compactor.go:551 msg="waiting 10m0s for ring to stay stable and previous compactions to finish before starting compactor"
loki | level=info ts=2025-09-12T12:57:37.791827087Z caller=frontend_scheduler_worker.go:107 msg="adding connection to scheduler" addr=127.0.0.1:9095
alloy-1 | ts=2025-09-12T12:57:48.156563467Z level=info "boringcrypto enabled"=false
alloy-1 | ts=2025-09-12T12:57:48.151511009Z level=info source=/go/pkg/mod/github.com/!kim!machine!gun/automemlimit@v0.7.1/memlimit/memlimit.go:175 msg="memory is not limited, skipping" package=github.com/KimMachineGun/automemlimit/memlimit
alloy-1 | ts=2025-09-12T12:57:48.156613675Z level=info msg="no peer discovery configured: both join and discover peers are empty" service=cluster
alloy-1 | ts=2025-09-12T12:57:48.156616967Z level=info msg="running usage stats reporter"
alloy-1 | ts=2025-09-12T12:57:48.15661905Z level=info msg="starting complete graph evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759
alloy-1 | ts=2025-09-12T12:57:48.156632384Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=otel duration=1µs
alloy-1 | ts=2025-09-12T12:57:48.156635759Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=livedebugging duration=22.792µs
alloy-1 | ts=2025-09-12T12:57:48.156638009Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=loki.write.provisioned_logs duration=683.042µs
alloy-1 | ts=2025-09-12T12:57:48.1566403Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=loki.relabel.generate_labels duration=156.625µs
alloy-1 | ts=2025-09-12T12:57:48.156642467Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=loki.source.file.dpkg_log duration=169.792µs
alloy-1 | ts=2025-09-12T12:57:48.156645092Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=tracing duration=4.125µs
alloy-1 | ts=2025-09-12T12:57:48.1566473Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=labelstore duration=3.083µs
alloy-1 | ts=2025-09-12T12:57:48.156650134Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=logging duration=96.833µs
alloy-1 | ts=2025-09-12T12:57:48.156672884Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=remotecfg duration=19µs
alloy-1 | ts=2025-09-12T12:57:48.156687425Z level=info msg="applying non-TLS config to HTTP server" service=http
alloy-1 | ts=2025-09-12T12:57:48.156692842Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=http duration=10.625µs
alloy-1 | ts=2025-09-12T12:57:48.156702967Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=ui duration=2.292µs
alloy-1 | ts=2025-09-12T12:57:48.156728175Z level=info msg="finished node evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 node_id=cluster duration=1.5µs
alloy-1 | ts=2025-09-12T12:57:48.156731717Z level=info msg="finished complete graph evaluation" controller_path=/ controller_id="" trace_id=29cc08169dffa0e028ecb57c19b0c759 duration=1.352583ms
alloy-1 | ts=2025-09-12T12:57:48.156961634Z level=info msg="scheduling loaded components and services"
alloy-1 | ts=2025-09-12T12:57:48.157207134Z level=info msg="starting cluster node" service=cluster peers_count=0 peers="" advertise_addr=127.0.0.1:12345 minimum_cluster_size=0 minimum_size_wait_timeout=0s
alloy-1 | ts=2025-09-12T12:57:48.157646175Z level=info msg="tail routine: started" component_path=/ component_id=loki.source.file.dpkg_log component=tailer path=/var/log/dpkg.log
alloy-1 | ts=2025-09-12T12:57:48.1576568Z level=info msg="peers changed" service=cluster peers_count=1 min_cluster_size=0 peers=6174ef1e8f05
alloy-1 | ts=2025-09-12T12:57:48.157773759Z level=info msg="Seeked /var/log/dpkg.log - &{Offset:0 Whence:0}" component_path=/ component_id=loki.source.file.dpkg_log component=tailer
alloy-1 | ts=2025-09-12T12:57:48.159895134Z level=info msg="now listening for http traffic" service=http addr=0.0.0.0:12345
alloy-1 | ts=2025-09-12T12:57:49.267348676Z level=error msg="final error sending batch" component_path=/ component_id=loki.write.provisioned_logs component=client host=loki:3100 status=400 tenant="" error="server returned HTTP status 400 Bad Request (400): entry for stream '{__foo1=\"bar\", __foo10=\"bar\", __foo11=\"bar\", __foo12=\"bar\", __foo13=\"bar\", __foo14=\"bar\", __foo15=\"bar\", __foo2=\"bar\", __foo3=\"bar\", __foo4=\"bar\", __foo5=\"bar\", __foo6=\"bar\", __foo7=\"bar\", __foo8=\"bar\", __foo9=\"bar\", filename=\"/var/log/dpkg.log\", service_name=\"unknown_service\"}' has 16 label names; limit 15"
loki | level=error ts=2025-09-12T12:57:49.266893426Z caller=manager.go:50 component=distributor path=write msg="write operation failed" details="entry for stream '{__foo1=\"bar\", __foo10=\"bar\", __foo11=\"bar\", __foo12=\"bar\", __foo13=\"bar\", __foo14=\"bar\", __foo15=\"bar\", __foo2=\"bar\", __foo3=\"bar\", __foo4=\"bar\", __foo5=\"bar\", __foo6=\"bar\", __foo7=\"bar\", __foo8=\"bar\", __foo9=\"bar\", filename=\"/var/log/dpkg.log\", service_name=\"unknown_service\"}' has 16 label names; limit 15" org_id=fake
loki | level=info ts=2025-09-12T12:57:57.514158805Z caller=recalculate_owned_streams.go:49 msg="starting recalculate owned streams job"
loki | level=info ts=2025-09-12T12:57:57.514273805Z caller=recalculate_owned_streams.go:63 msg="detected ring changes, re-evaluating streams ownership"
loki | level=info ts=2025-09-12T12:57:57.51429168Z caller=recalculate_owned_streams.go:52 msg="completed recalculate owned streams job"
Tip
React with 👍 if this issue is important to you.
baurmatt and Footur
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingc/loki.writegood first issueGood for newcomersGood for newcomers