Proto commits in bitdriftlabs/pulse

These 56 commits are when the Protocol Buffers files have changed:

Commit:c4f5a48
Author:Matt Klein
Committer:GitHub

change license to PolyForm Strict (#112) Signed-off-by: Matt Klein <mklein@bitdrift.io>

The documentation is generated from this commit.

Commit:2ff41f2
Author:Matt Klein
Committer:GitHub

cardinality tracker: add gauge meta metrics (#110) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:cef5651
Author:Matt Klein
Committer:GitHub

bump deps (#109) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:50b115c
Author:Matt Klein
Committer:GitHub

add configurable connect timeout for remote write (#108) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:8976ff6
Author:Matt Klein
Committer:GitHub

aws auth: add region override (#107) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:97f7032
Author:Matt Klein
Committer:GitHub

vrl: add pulse_add_to_downstream_id function (#106) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:e2b4c4e
Author:Matt Klein
Committer:GitHub

internode: add health checking support (#105) Fixes BIT-7130 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:bb82314
Author:Matt Klein
Committer:GitHub

drop: add NaN matcher (#103) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:5b441e8
Author:Matt Klein
Committer:GitHub

prom remote write inflow: allow flattening histograms and summaries (#102) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:3a1956d
Author:Matt Klein
Committer:GitHub

drop: add timestamp drop type (#100) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:bb95037
Author:Matt Klein
Committer:GitHub

batch: add FIFO option for the batch queue (#99) Also includes unrelated clippy fixes/dep updates. Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:138c147
Author:Matt Klein
Committer:GitHub

prom outflow: add max request size config (#96) This will split outbound requests if the compressed size is too large. This is off by default and must be enabled in config. Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:3cb09d2
Author:Matt Klein
Committer:GitHub

add a dedicated tester for drop processor configs (#92) Fixes BIT-6161 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:5134ddf
Author:Matt Klein
Committer:GitHub

drop processor: add not condition (#91) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:80a2b4d
Author:Matt Klein
Committer:GitHub

prom remote write: add configurable pool idle timeout (#90) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:a6a0d5d
Author:Matt Klein
Committer:GitHub

k8s scraper: allow overriding default prom annotations (#88) Fixes BIT-5910 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:94645cd
Author:Matt Klein
Committer:GitHub

vrl: add tag support to pulse_inc_counter() (#87) Fixes BIT-5740 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:6e1d45c
Author:Matt Klein
Committer:GitHub

vrl: add pulse_log() and pulse_inc_counter() functions (#86) Fixes BIT-5696 Fixes BIT-5695 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:241a9a0
Author:Matt Klein
Committer:GitHub

drop processor (#84) Implement the initial version of the new drop processor for initial testing. Fixes BIT-5189 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:d41e79f
Author:Matt Klein
Committer:GitHub

otlp: add option to convert to prometheus names on outflow (#83) Handle both names and labels. Additionally, fix prom outflow conversion to convert labels as well as names. This fixes sending OTLP to AMP for example. Fixes BIT-5431 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:66f4f9c
Author:Matt Klein
Committer:GitHub

support host network filtering (#82) Fixes BIT-5339 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:f0524bb
Author:Matt Klein
Committer:GitHub

otlp: allow configurable inflow path (#80) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:32c153f
Author:Matt Klein
Committer:GitHub

Initial OTLP inflow/outflow support (#77) Consider this alpha quality as I'm sure we will find issues as we start testing. Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:c6fe4ca
Author:Matt Klein
Committer:GitHub

OTLP part 1 (#76) Refactors prom remote write inflow and outflow into an HTTP base since 99% of the code will be shared. Also add the OTLP protos and compile them. Most of the diff in this PR is proto changes. The only functional change is I moved the append_tags_to_downstream_id config option inside DownstreamIdSource so it can more easily be shared. This is a breaking config change but it should be OK given current users. Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:799b6de
Author:Matt Klein
Committer:GitHub

vrl: add ability to flatten prom histogram and summaries (#74) Fixes BIT-5140 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:210f8c5
Author:Matt Klein
Committer:GitHub

scraper: add annotation inclusion filter (#73) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:a75741a
Author:Matt Klein
Committer:GitHub

elision: add block all option (#71) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:f67ef90
Author:Matt Klein
Committer:GitHub

prom scraper: add kubernetes endpoint scraper (#70) 1) Refactor watcher code into a shared base. 2) Create an endpoints watcher. 3) Allow the scraper to do discovery on this. Fixes BIT-5004 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:c1a2ac2
Author:charlie-pisuraj
Committer:GitHub

Accept Env Var for http sd url (#67)

Commit:1be67b6
Author:Matt Klein
Committer:GitHub

internode: add max pending request circuit breaker (#66) Will both warn every 15s and increment a stat when requests are dropped. Defaults to 2x max inflight requests. Fixes BIT-4956 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:99666f9
Author:Matt Klein
Committer:GitHub

batch: support multiple batch queues to reduce lock contention (#65) In high throughput scenarios the pending batch being built will become contended, especially for prom remote write when the batch is being finished which involves proto encoding and compression. This change allows the batch queue policy to support concurrent queues. Right now this has to be manually configured because in low throughput scenarios this can lead to less efficient packing. Fixes BIT-4935 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:6e3c84d
Author:Matt Klein
Committer:GitHub

k8s: rewrite service cache (#64) Instead of fetching all services, fetch by namespace on demand and cache for a configurable period. This will perform a lot better. Fixes BIT-4919 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:741c81a
Author:Matt Klein
Committer:GitHub

prom scraper: implement HTTP SD protocol (#63) Fixes BIT-4924 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:6ca1348
Author:Matt Klein
Committer:GitHub

VRL: add node labels and annotations to metadata (#62) Also provide node only metadata to NodeEndpoints target Fixes BIT-4936 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:77ea90b
Author:Matt Klein
Committer:GitHub

various k8s scraper improvements (#61) 1) Support prometheus.io/scheme annotation 2) Support named service ports 3) Allow endpoing service to use k8s service auth Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:d280324
Author:Matt Klein
Committer:GitHub

aggregation: make gauge sum/mean depend on downstream ID (#60) Without this the values have no real meaning. Warnings have been added to the config. This means that Each repeated gauge value during an interval must have a unique downstream ID for this to work properly. Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:1f970d2
Author:Matt Klein
Committer:GitHub

k8s scraping: add timeout (#56) Defaults to 15s. Also don't wait for scrapers to join on reload. The theory being that the reload task is hanging due to hung request. Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:3f3becc
Author:charlie-pisuraj
Committer:GitHub

Allow configurable insecure_skip_verify for prom tls config (#46)

Commit:e6bda02
Author:Matt Klein
Committer:GitHub

k8s: add config for which pod phases to cache (#44) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:f74c949
Author:Matt Klein
Committer:GitHub

statsd: add option to sanitize tag names and values (#43) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:3d03cea
Author:charlie-pisuraj
Committer:GitHub

Add tls config (#42)

Commit:1f62763
Author:Matt Klein
Committer:GitHub

prom scraping: add facility for dynamically enabling https/k8s auth for scraping (#37) Currently we allow annotation matching but we could add other mechanisms in the future like VRL. Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:ee364a9
Author:Matt Klein
Committer:GitHub

prom scraping: add support for "up" metric (#36) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:280062b
Author:Matt Klein
Committer:GitHub

prom scraping: support multiple ports and inclusion rules (#35) 1) Refactor pods info to move scraping logic to the scraper. 2) Support multiple ports in the prom port annotation. 3) Support port inclusion via regex. Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:ff7dfbd
Author:Matt Klein
Committer:GitHub

prom: add support for appending tags to the downstreamn ID (#32) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:7027998
Author:Matt Klein
Committer:GitHub

pre-buffer: add config for timer reservoir size (#31) Also change default back to 100. With bulk timer optimization there should not be much perf difference. Fixes BIT-4567 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:ebbf4db
Author:Matt Klein
Committer:GitHub

vrl: add .mtype to return metric type (#28) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:0dc5c5d
Author:Matt Klein
Committer:GitHub

k8s/prom: add more vrl metadata (#27) Fixes BIT-4446 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:e661e3d
Author:Matt Klein
Committer:GitHub

introduce the bulk timer internal metric type and various cleanups (#19) This change introduces a "bulk timer" type which is designed to carry along statsd style timers in a single pseudo metric to avoid repeated processing of the same metric name, tags, etc. over and over again. This has been implemented for both internode as well as a prom remote write extension. By default the pre-buffer functionality will internally emit bulk timers out of the reservoir. In order to emit bulk timers out of the aggregation processor reservoir, configure the new `emit_as_bulk_timer` option. Additionally, new bitdrift extensions for prom remote write have been added for delta counters and statsd timers, so the inflow options for `summary_as_timer` and `counter_as_delta` are no longer needed if receiving traffic from supporting pulse instances. Finally, statsd set support has been removed as it's unused anywhere we know of. Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:b5b4574
Author:Matt Klein
Committer:GitHub

add always pre-buffer config option for TCP/UDP wire inflow (#17) This will better handle large bursts of single timer values before flushing through the rest of the pipeline. Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:46bebc3
Author:Matt Klein
Committer:GitHub

vrl tester: allow testing cardinality limiter programs (#16) Fixes BIT-4155 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:1acf5d7
Author:Matt Klein
Committer:GitHub

add UDP pre-buffering (#14) This is similar to my previous commit, but for UDP. If configured, it creates UDP "sessions" which have a pre-buffer config as well as a session idle timeout. Fixes BIT-3990 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:63f0eee
Author:Matt Klein
Committer:GitHub

tcp inflow: add pre-buffering (#13) This commit adds the ability apply a pre-buffer duration where metrics will be buffered for up to some period of time, and then flushed through the rest of the pipeline. This is useful in cases where k8s informer lag may lead to no metadata being available for new pods that send metrics right away without any external synchronization. This is only useful for TCP as it keys off of new streams. Theoretically it could be made to work for UDP by keeping track of newly seen IPs but this is deferred for now. UDP IP tracking would also not help with on-host IP recycling cases whereas TCP streams account for that. Fixes BIT-3985 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:7f821ec
Author:Matt Klein
Committer:GitHub

vrl: support early return via return statement (#10) Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:7c731ec
Author:Matt Klein
Committer:GitHub

config: add layered merging option (#9) Fixes BIT-3697 Signed-off-by: Matt Klein <mklein@bitdrift.io>

Commit:4d6a90c
Author:Matt Klein
Committer:GitHub

initial public import (#1) Signed-off-by: Matt Klein <mklein@bitdrift.io>