mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-01 14:47:38 +00:00
5b3cbd4db1
* app/vlinsert: add support of loki push protocol - implemented loki push protocol for both Protobuf and JSON formats - added examples in documentation - added example docker-compose Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * app/vlinsert: move protobuf metric into its own file Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * deployment/docker/victorialogs/promtail: update reference to docker image Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * deployment/docker/victorialogs/promtail: make volume name unique Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * app/vlinsert/loki: add license reference Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * deployment/docker/victorialogs/promtail: fix volume name Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * docs/VictoriaLogs/data-ingestion: add stream fields for loki JSON ingestion example Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * app/vlinsert/loki: move entities to places where those are used Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * app/vlinsert/loki: refactor to use common components - use CommonParameters from insertutils - stop ingestion after first error similar to elasticsearch and jsonline Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> * app/vlinsert/loki: address review feedback - add missing logstorage.PutLogRows calls - refactor tenant ID parsing to use common function - reduce number of allocations for parsing by reusing logfields slices - add tests and benchmarks for requests processing funcs Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com> --------- Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>
38 lines
1 KiB
Protocol Buffer
38 lines
1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
// source: https://raw.githubusercontent.com/grafana/loki/main/pkg/push/push.proto
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// https://github.com/grafana/loki/blob/main/pkg/push/LICENSE
|
|
|
|
package logproto;
|
|
|
|
import "gogoproto/gogo.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
option go_package = "github.com/VictoriaMetrics/VictoriaMetrics/app/vlinsert/loki";
|
|
|
|
message PushRequest {
|
|
repeated StreamAdapter streams = 1 [
|
|
(gogoproto.jsontag) = "streams",
|
|
(gogoproto.customtype) = "Stream"
|
|
];
|
|
}
|
|
|
|
message StreamAdapter {
|
|
string labels = 1 [(gogoproto.jsontag) = "labels"];
|
|
repeated EntryAdapter entries = 2 [
|
|
(gogoproto.nullable) = false,
|
|
(gogoproto.jsontag) = "entries"
|
|
];
|
|
// hash contains the original hash of the stream.
|
|
uint64 hash = 3 [(gogoproto.jsontag) = "-"];
|
|
}
|
|
|
|
message EntryAdapter {
|
|
google.protobuf.Timestamp timestamp = 1 [
|
|
(gogoproto.stdtime) = true,
|
|
(gogoproto.nullable) = false,
|
|
(gogoproto.jsontag) = "ts"
|
|
];
|
|
string line = 2 [(gogoproto.jsontag) = "line"];
|
|
}
|