Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(statsd sink): refactor statsd sink to stream-based style #16199

Merged
merged 33 commits into from
May 26, 2023

Conversation

tobz
Copy link
Contributor

@tobz tobz commented Jan 30, 2023

This PR completely refactors the statsd sink in the "new style", which uses stream-based combinators to build a Stream implementation that drives component behavior.

At a high-level, the PR is indeed for refactoring the sink, but ultimately includes as much, if not more, refactoring work around establishing reusable Service-based primitives for building other sinks like statsd i.e. socket or syslog.

Reviewer Notes

I've mostly copied the existing shared socket sink types -- TcpSinkConfig, etc -- and existing socket services -- UdpService -- and created consistent versions of them for TCP, UDP, and Unix Domain sockets.

This includes a configuration type that is Configurable-compatible for all of them, with socket-specific configurations[1] and then methods for generating both the Service implementation and a Healthcheck implementation. Ultimately, this should form the basis of other sink refactors that use sockets directly (socket, syslog, etc) but it may be desirable to do some more trait-ifying to avoid some of the necessary boilerplate introduced here.

Remaining Work

  • fix normalizer unit tests + add one for sketches

@netlify
Copy link

netlify bot commented Jan 30, 2023

Deploy Preview for vrl-playground failed.

Name Link
🔨 Latest commit 8c1dd18
🔍 Latest deploy log https://app.netlify.com/sites/vrl-playground/deploys/63f76fdd6ce3b400082237a4

@tobz tobz marked this pull request as draft January 30, 2023 21:06
@netlify
Copy link

netlify bot commented Jan 30, 2023

Deploy Preview for vector-project canceled.

Name Link
🔨 Latest commit 43b3c3e
🔍 Latest deploy log https://app.netlify.com/sites/vector-project/deploys/646faca202407a000886e7ec

@github-actions github-actions bot added domain: sinks Anything related to the Vector's sinks domain: sources Anything related to the Vector's sources labels Jan 30, 2023
src/sinks/datadog/metrics/sink.rs Outdated Show resolved Hide resolved
src/sinks/statsd/config.rs Outdated Show resolved Hide resolved
src/sinks/statsd/mod.rs Outdated Show resolved Hide resolved
src/sinks/util/service/net/tcp.rs Outdated Show resolved Hide resolved
src/sinks/util/service/net/tcp.rs Show resolved Hide resolved
src/sinks/util/service/net/tcp.rs Outdated Show resolved Hide resolved
src/sinks/util/service/net/udp.rs Outdated Show resolved Hide resolved
src/sinks/util/service/net/udp.rs Outdated Show resolved Hide resolved
src/sinks/util/service/net/unix.rs Outdated Show resolved Hide resolved
src/sinks/util/service/net/unix.rs Outdated Show resolved Hide resolved
@github-actions
Copy link

Regression Detector Results

Run ID: 46b2de6c-9d35-4977-86e5-52f0920adc50
Baseline: fc94ce6
Comparison: a08bc84
Total vector CPUs: 7

Explanation

A regression test is an integrated performance test for vector in a repeatable rig, with varying configuration for vector. What follows is a statistical summary of a brief vector run for each configuration across SHAs given above. The goal of these tests are to determine quickly if vector performance is changed and to what degree by a pull request.

The table below, if present, lists those experiments that have experienced a statistically significant change in mean optimization goal performance between baseline and comparison SHAs with 90.00% confidence OR have been detected as newly erratic. Negative values mean that baseline is faster, positive comparison. Results that do not exhibit more than a ±5.00% change in their mean optimization goal are discarded. An experiment is erratic if its coefficient of variation is greater than 0.1. The abbreviated table will be omitted if no interesting change is observed.

Changes in experiment optimization goals with confidence ≥ 90.00% and |Δ mean %| ≥ 5.00%:

experiment goal Δ mean Δ mean % confidence
datadog_agent_remap_blackhole_acks ingress throughput 1.61MiB/CPU-s 5.41 100.00%
Fine details of change detection per experiment.
experiment goal Δ mean Δ mean % confidence baseline mean baseline stdev baseline stderr baseline outlier % baseline CoV comparison mean comparison stdev comparison stderr comparison outlier % comparison CoV erratic declared erratic
datadog_agent_remap_blackhole_acks ingress throughput 1.61MiB/CPU-s 5.41 100.00% 29.81MiB/CPU-s 1.96MiB/CPU-s 25.95KiB/CPU-s 0.0 0.065836 31.43MiB/CPU-s 1.07MiB/CPU-s 14.18KiB/CPU-s 0.0 0.034139 False False
syslog_loki ingress throughput 334.0KiB/CPU-s 3.92 100.00% 8.33MiB/CPU-s 285.94KiB/CPU-s 3.69KiB/CPU-s 0.0 0.033534 8.65MiB/CPU-s 231.31KiB/CPU-s 2.99KiB/CPU-s 0.0 0.026105 False False
syslog_log2metric_splunk_hec_metrics ingress throughput 216.32KiB/CPU-s 2.42 100.00% 8.72MiB/CPU-s 347.09KiB/CPU-s 4.48KiB/CPU-s 0.0 0.038885 8.93MiB/CPU-s 453.99KiB/CPU-s 5.86KiB/CPU-s 0.0 0.049657 False False
syslog_humio_logs ingress throughput 209.74KiB/CPU-s 2.36 100.00% 8.67MiB/CPU-s 233.72KiB/CPU-s 3.02KiB/CPU-s 0.0 0.026333 8.87MiB/CPU-s 250.75KiB/CPU-s 3.24KiB/CPU-s 0.0 0.027599 False False
syslog_splunk_hec_logs ingress throughput 201.6KiB/CPU-s 2.29 100.00% 8.6MiB/CPU-s 181.65KiB/CPU-s 2.35KiB/CPU-s 0.0 0.02063 8.8MiB/CPU-s 282.7KiB/CPU-s 3.65KiB/CPU-s 0.0 0.031387 False False
otlp_http_to_blackhole ingress throughput 27.81KiB/CPU-s 1.84 100.00% 1.48MiB/CPU-s 122.62KiB/CPU-s 1.58KiB/CPU-s 0.0 0.081066 1.5MiB/CPU-s 124.66KiB/CPU-s 1.61KiB/CPU-s 0.0 0.080926 False False
otlp_grpc_to_blackhole ingress throughput 17.73KiB/CPU-s 1.73 100.00% 1.0MiB/CPU-s 44.56KiB/CPU-s 589.0B/CPU-s 0.0 0.043448 1.02MiB/CPU-s 55.68KiB/CPU-s 735.55B/CPU-s 0.0 0.053367 False False
splunk_hec_route_s3 ingress throughput 189.59KiB/CPU-s 1.62 100.00% 11.43MiB/CPU-s 559.67KiB/CPU-s 7.22KiB/CPU-s 0.0 0.047809 11.62MiB/CPU-s 546.79KiB/CPU-s 7.06KiB/CPU-s 0.0 0.045964 False False
syslog_regex_logs2metric_ddmetrics ingress throughput 45.61KiB/CPU-s 1.25 100.00% 3.56MiB/CPU-s 424.69KiB/CPU-s 5.48KiB/CPU-s 0.0 0.116527 3.6MiB/CPU-s 384.81KiB/CPU-s 4.97KiB/CPU-s 0.0 0.10428 True False
socket_to_socket_blackhole ingress throughput 127.99KiB/CPU-s 0.97 100.00% 12.86MiB/CPU-s 448.55KiB/CPU-s 5.79KiB/CPU-s 0.0 0.034063 12.98MiB/CPU-s 365.43KiB/CPU-s 4.72KiB/CPU-s 0.0 0.027483 False False
datadog_agent_remap_datadog_logs ingress throughput 204.33KiB/CPU-s 0.61 100.00% 32.45MiB/CPU-s 1.25MiB/CPU-s 16.47KiB/CPU-s 0.0 0.038423 32.65MiB/CPU-s 1.35MiB/CPU-s 17.8KiB/CPU-s 0.0 0.041272 False False
datadog_agent_remap_blackhole ingress throughput 117.62KiB/CPU-s 0.37 100.00% 30.68MiB/CPU-s 1.29MiB/CPU-s 16.99KiB/CPU-s 0.0 0.0419 30.8MiB/CPU-s 1.39MiB/CPU-s 18.31KiB/CPU-s 0.0 0.044979 False False
http_to_http_json ingress throughput 34.93KiB/CPU-s 0.25 100.00% 13.57MiB/CPU-s 298.49KiB/CPU-s 3.85KiB/CPU-s 0.0 0.021482 13.6MiB/CPU-s 259.92KiB/CPU-s 3.35KiB/CPU-s 0.0 0.018659 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput 6.62KiB/CPU-s 0.05 90.41% 13.62MiB/CPU-s 241.81KiB/CPU-s 3.12KiB/CPU-s 0.0 0.017338 13.63MiB/CPU-s 191.09KiB/CPU-s 2.47KiB/CPU-s 0.0 0.013695 False False
http_to_http_noack ingress throughput 2.18KiB/CPU-s 0.02 28.80% 13.61MiB/CPU-s 335.43KiB/CPU-s 4.33KiB/CPU-s 0.0 0.024063 13.61MiB/CPU-s 312.31KiB/CPU-s 4.03KiB/CPU-s 0.0 0.022401 False False
fluent_elasticsearch ingress throughput -125.57B/CPU-s -0.00 17.82% 45.41MiB/CPU-s 30.1KiB/CPU-s 392.96B/CPU-s 0.0 0.000647 45.41MiB/CPU-s 30.26KiB/CPU-s 395.58B/CPU-s 0.0 0.000651 False False
splunk_hec_indexer_ack_blackhole ingress throughput 701.47B/CPU-s 0.00 11.75% 13.62MiB/CPU-s 257.45KiB/CPU-s 3.32KiB/CPU-s 0.0 0.018463 13.62MiB/CPU-s 250.69KiB/CPU-s 3.23KiB/CPU-s 0.0 0.017977 False False
enterprise_http_to_http ingress throughput -29.21B/CPU-s -0.00 0.81% 13.62MiB/CPU-s 153.11KiB/CPU-s 1.98KiB/CPU-s 0.0 0.010974 13.62MiB/CPU-s 152.86KiB/CPU-s 1.97KiB/CPU-s 0.0 0.010956 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -2.88KiB/CPU-s -0.02 34.96% 13.62MiB/CPU-s 353.31KiB/CPU-s 4.56KiB/CPU-s 0.0 0.025337 13.61MiB/CPU-s 344.11KiB/CPU-s 4.44KiB/CPU-s 0.0 0.024682 False False
file_to_blackhole ingress throughput -14.48KiB/CPU-s -0.03 47.75% 54.49MiB/CPU-s 1.09MiB/CPU-s 14.33KiB/CPU-s 0.0 0.019913 54.48MiB/CPU-s 1.33MiB/CPU-s 17.52KiB/CPU-s 0.0 0.024361 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -75.28KiB/CPU-s -0.22 99.85% 32.92MiB/CPU-s 1.12MiB/CPU-s 14.8KiB/CPU-s 0.0 0.034022 32.85MiB/CPU-s 1.4MiB/CPU-s 18.44KiB/CPU-s 0.0 0.042484 False False
http_text_to_http_json ingress throughput -118.45KiB/CPU-s -0.47 100.00% 24.43MiB/CPU-s 668.89KiB/CPU-s 8.64KiB/CPU-s 0.0 0.026739 24.31MiB/CPU-s 892.07KiB/CPU-s 11.51KiB/CPU-s 0.0 0.035831 False False
syslog_log2metric_humio_metrics ingress throughput -78.43KiB/CPU-s -1.26 100.00% 6.07MiB/CPU-s 296.44KiB/CPU-s 3.83KiB/CPU-s 0.0 0.047724 5.99MiB/CPU-s 284.74KiB/CPU-s 3.68KiB/CPU-s 0.0 0.046426 False False
http_to_http_acks ingress throughput -88.23KiB/CPU-s -1.61 92.07% 5.34MiB/CPU-s 2.71MiB/CPU-s 35.79KiB/CPU-s 0.0 0.507418 5.25MiB/CPU-s 2.67MiB/CPU-s 35.32KiB/CPU-s 0.0 0.508897 True False

@github-actions
Copy link

Regression Detector Results

Run ID: 1913164c-b25a-4efb-9e7c-d7a81c2507b6
Baseline: ef4c5c0
Comparison: 6037898
Total vector CPUs: 7

Explanation

A regression test is an integrated performance test for vector in a repeatable rig, with varying configuration for vector. What follows is a statistical summary of a brief vector run for each configuration across SHAs given above. The goal of these tests are to determine quickly if vector performance is changed and to what degree by a pull request.

The table below, if present, lists those experiments that have experienced a statistically significant change in mean optimization goal performance between baseline and comparison SHAs with 90.00% confidence OR have been detected as newly erratic. Negative values mean that baseline is faster, positive comparison. Results that do not exhibit more than a ±5.00% change in their mean optimization goal are discarded. An experiment is erratic if its coefficient of variation is greater than 0.1. The abbreviated table will be omitted if no interesting change is observed.

No interesting changes in experiment optimization goals with confidence ≥ 90.00% and |Δ mean %| ≥ 5.00%.

Fine details of change detection per experiment.
experiment goal Δ mean Δ mean % confidence baseline mean baseline stdev baseline stderr baseline outlier % baseline CoV comparison mean comparison stdev comparison stderr comparison outlier % comparison CoV erratic declared erratic
splunk_hec_route_s3 ingress throughput 271.96KiB/CPU-s 2.36 100.00% 11.26MiB/CPU-s 620.68KiB/CPU-s 8.01KiB/CPU-s 0.0 0.053821 11.53MiB/CPU-s 542.83KiB/CPU-s 7.01KiB/CPU-s 0.0 0.045985 False False
otlp_http_to_blackhole ingress throughput 21.6KiB/CPU-s 1.43 100.00% 1.47MiB/CPU-s 129.59KiB/CPU-s 1.67KiB/CPU-s 0.0 0.085866 1.49MiB/CPU-s 130.63KiB/CPU-s 1.69KiB/CPU-s 0.0 0.085335 False False
otlp_grpc_to_blackhole ingress throughput 7.89KiB/CPU-s 0.76 100.00% 1.01MiB/CPU-s 38.68KiB/CPU-s 511.4B/CPU-s 0.0 0.037262 1.02MiB/CPU-s 51.46KiB/CPU-s 679.97B/CPU-s 0.0 0.049195 False False
enterprise_http_to_http ingress throughput 10.3KiB/CPU-s 0.07 97.82% 13.61MiB/CPU-s 311.83KiB/CPU-s 4.02KiB/CPU-s 0.0 0.022367 13.62MiB/CPU-s 154.17KiB/CPU-s 1.99KiB/CPU-s 0.0 0.01105 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput 3.58KiB/CPU-s 0.03 65.50% 13.62MiB/CPU-s 221.39KiB/CPU-s 2.86KiB/CPU-s 0.0 0.01587 13.63MiB/CPU-s 192.7KiB/CPU-s 2.49KiB/CPU-s 0.0 0.01381 False False
http_to_http_json ingress throughput 860.8B/CPU-s 0.01 17.12% 13.62MiB/CPU-s 214.19KiB/CPU-s 2.76KiB/CPU-s 0.0 0.015354 13.62MiB/CPU-s 211.89KiB/CPU-s 2.73KiB/CPU-s 0.0 0.015188 False False
http_to_http_noack ingress throughput 1.95KiB/CPU-s 0.01 28.06% 13.61MiB/CPU-s 308.46KiB/CPU-s 3.98KiB/CPU-s 0.0 0.022125 13.62MiB/CPU-s 285.88KiB/CPU-s 3.69KiB/CPU-s 0.0 0.020502 False False
splunk_hec_indexer_ack_blackhole ingress throughput 1.09KiB/CPU-s 0.01 19.01% 13.62MiB/CPU-s 249.51KiB/CPU-s 3.22KiB/CPU-s 0.0 0.017892 13.62MiB/CPU-s 249.32KiB/CPU-s 3.22KiB/CPU-s 0.0 0.017877 False False
fluent_elasticsearch ingress throughput 53.62B/CPU-s 0.00 7.63% 45.41MiB/CPU-s 30.39KiB/CPU-s 397.27B/CPU-s 0.0 0.000653 45.41MiB/CPU-s 30.19KiB/CPU-s 394.54B/CPU-s 0.0 0.000649 False False
file_to_blackhole ingress throughput -6.82KiB/CPU-s -0.01 25.50% 54.5MiB/CPU-s 1.07MiB/CPU-s 14.09KiB/CPU-s 0.0 0.019578 54.49MiB/CPU-s 1.18MiB/CPU-s 15.54KiB/CPU-s 0.0 0.021598 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -3.4KiB/CPU-s -0.02 41.80% 13.62MiB/CPU-s 334.97KiB/CPU-s 4.32KiB/CPU-s 0.0 0.024016 13.62MiB/CPU-s 341.03KiB/CPU-s 4.4KiB/CPU-s 0.0 0.024457 False False
syslog_log2metric_humio_metrics ingress throughput -2.67KiB/CPU-s -0.04 87.29% 6.26MiB/CPU-s 73.96KiB/CPU-s 977.77B/CPU-s 0.0 0.011543 6.25MiB/CPU-s 113.92KiB/CPU-s 1.47KiB/CPU-s 0.0 0.017786 False False
syslog_humio_logs ingress throughput -4.54KiB/CPU-s -0.05 88.02% 8.95MiB/CPU-s 209.99KiB/CPU-s 2.71KiB/CPU-s 0.0 0.022914 8.94MiB/CPU-s 83.45KiB/CPU-s 1.08KiB/CPU-s 0.0 0.009111 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -5.6KiB/CPU-s -0.14 50.94% 3.8MiB/CPU-s 449.74KiB/CPU-s 5.8KiB/CPU-s 0.0 0.115658 3.79MiB/CPU-s 439.84KiB/CPU-s 5.68KiB/CPU-s 0.0 0.113275 True False
datadog_agent_remap_blackhole_acks ingress throughput -48.12KiB/CPU-s -0.15 100.00% 31.95MiB/CPU-s 504.34KiB/CPU-s 6.51KiB/CPU-s 0.0 0.015416 31.9MiB/CPU-s 631.9KiB/CPU-s 8.16KiB/CPU-s 0.0 0.019343 False False
syslog_log2metric_splunk_hec_metrics ingress throughput -14.33KiB/CPU-s -0.16 99.04% 8.93MiB/CPU-s 317.27KiB/CPU-s 4.1KiB/CPU-s 0.0 0.034705 8.91MiB/CPU-s 288.22KiB/CPU-s 3.72KiB/CPU-s 0.0 0.031577 False False
http_to_http_acks ingress throughput -57.53KiB/CPU-s -1.05 74.32% 5.35MiB/CPU-s 2.72MiB/CPU-s 35.99KiB/CPU-s 0.0 0.509146 5.29MiB/CPU-s 2.71MiB/CPU-s 35.75KiB/CPU-s 0.0 0.511087 True False
datadog_agent_remap_datadog_logs_acks ingress throughput -400.55KiB/CPU-s -1.20 100.00% 32.47MiB/CPU-s 1.48MiB/CPU-s 19.54KiB/CPU-s 0.0 0.045543 32.08MiB/CPU-s 891.49KiB/CPU-s 11.51KiB/CPU-s 0.0 0.027136 False False
datadog_agent_remap_datadog_logs ingress throughput -533.39KiB/CPU-s -1.55 100.00% 33.63MiB/CPU-s 1.07MiB/CPU-s 14.11KiB/CPU-s 0.0 0.031769 33.11MiB/CPU-s 1.07MiB/CPU-s 14.13KiB/CPU-s 0.0 0.032319 False False
syslog_splunk_hec_logs ingress throughput -143.82KiB/CPU-s -1.59 100.00% 8.83MiB/CPU-s 190.41KiB/CPU-s 2.46KiB/CPU-s 0.0 0.021049 8.69MiB/CPU-s 238.73KiB/CPU-s 3.08KiB/CPU-s 0.0 0.026817 False False
socket_to_socket_blackhole ingress throughput -222.43KiB/CPU-s -1.63 100.00% 13.32MiB/CPU-s 177.94KiB/CPU-s 2.3KiB/CPU-s 0.0 0.013041 13.11MiB/CPU-s 118.87KiB/CPU-s 1.54KiB/CPU-s 0.0 0.008856 False False
datadog_agent_remap_blackhole ingress throughput -612.07KiB/CPU-s -1.89 100.00% 31.57MiB/CPU-s 692.96KiB/CPU-s 8.95KiB/CPU-s 0.0 0.021435 30.97MiB/CPU-s 1.3MiB/CPU-s 17.16KiB/CPU-s 0.0 0.041907 False False
syslog_loki ingress throughput -283.65KiB/CPU-s -3.22 100.00% 8.6MiB/CPU-s 185.35KiB/CPU-s 2.39KiB/CPU-s 0.0 0.021043 8.32MiB/CPU-s 288.91KiB/CPU-s 3.73KiB/CPU-s 0.0 0.033892 False False
http_text_to_http_json ingress throughput -952.23KiB/CPU-s -3.78 100.00% 24.61MiB/CPU-s 484.57KiB/CPU-s 6.25KiB/CPU-s 0.0 0.019226 23.68MiB/CPU-s 667.96KiB/CPU-s 8.62KiB/CPU-s 0.0 0.027544 False False

@netlify
Copy link

netlify bot commented Apr 11, 2023

Deploy Preview for vrl-playground canceled.

Name Link
🔨 Latest commit 43b3c3e
🔍 Latest deploy log https://app.netlify.com/sites/vrl-playground/deploys/646faca2962b320007b7eed0

@datadog-vectordotdev
Copy link

datadog-vectordotdev bot commented Apr 11, 2023

Datadog Report

Branch report: tobz/rewrite-statsd-sink
Commit report: f68f122

vector: 0 Failed, 0 New Flaky, 1880 Passed, 0 Skipped, 10m 16.25s Wall Time

@github-actions
Copy link

Regression Detector Results

Run ID: 70ce5fab-3963-4cb6-8c57-0940a841b6ce
Baseline: 48fc574
Comparison: 577efa9
Total vector CPUs: 7

Explanation

A regression test is an integrated performance test for vector in a repeatable rig, with varying configuration for vector. What follows is a statistical summary of a brief vector run for each configuration across SHAs given above. The goal of these tests are to determine quickly if vector performance is changed and to what degree by a pull request.

The table below, if present, lists those experiments that have experienced a statistically significant change in mean optimization goal performance between baseline and comparison SHAs with 90.00% confidence OR have been detected as newly erratic. Negative values mean that baseline is faster, positive comparison. Results that do not exhibit more than a ±5.00% change in their mean optimization goal are discarded. An experiment is erratic if its coefficient of variation is greater than 0.1. The abbreviated table will be omitted if no interesting change is observed.

No interesting changes in experiment optimization goals with confidence ≥ 90.00% and |Δ mean %| ≥ 5.00%.

Fine details of change detection per experiment.
experiment goal Δ mean Δ mean % confidence baseline mean baseline stdev baseline stderr baseline outlier % baseline CoV comparison mean comparison stdev comparison stderr comparison outlier % comparison CoV erratic declared erratic
file_to_blackhole egress throughput 565.57KiB/CPU-s 8.52 99.64% 6.48MiB/CPU-s 4.37MiB/CPU-s 139.12KiB/CPU-s 6.853282 0.67458 7.03MiB/CPU-s 4.01MiB/CPU-s 135.03KiB/CPU-s 0.0 0.569453 True True
syslog_regex_logs2metric_ddmetrics ingress throughput 179.58KiB/CPU-s 4.93 100.00% 3.55MiB/CPU-s 497.7KiB/CPU-s 6.43KiB/CPU-s 0.0 0.136716 3.73MiB/CPU-s 459.62KiB/CPU-s 5.93KiB/CPU-s 0.0 0.12032 True True
syslog_loki ingress throughput 337.18KiB/CPU-s 3.94 100.00% 8.36MiB/CPU-s 407.56KiB/CPU-s 5.26KiB/CPU-s 0.0 0.047597 8.69MiB/CPU-s 163.66KiB/CPU-s 2.11KiB/CPU-s 0.0 0.018389 False False
socket_to_socket_blackhole ingress throughput 426.42KiB/CPU-s 3.21 100.00% 12.98MiB/CPU-s 729.79KiB/CPU-s 9.42KiB/CPU-s 0.0 0.054922 13.39MiB/CPU-s 648.96KiB/CPU-s 8.37KiB/CPU-s 0.0 0.04732 False False
syslog_humio_logs ingress throughput 158.34KiB/CPU-s 1.73 100.00% 8.92MiB/CPU-s 243.69KiB/CPU-s 3.14KiB/CPU-s 0.0 0.026688 9.07MiB/CPU-s 410.71KiB/CPU-s 5.3KiB/CPU-s 0.0 0.044212 False False
otlp_grpc_to_blackhole ingress throughput 18.26KiB/CPU-s 1.73 100.00% 1.03MiB/CPU-s 52.51KiB/CPU-s 694.05B/CPU-s 0.0 0.049623 1.05MiB/CPU-s 48.63KiB/CPU-s 642.65B/CPU-s 0.0 0.045172 False False
syslog_splunk_hec_logs ingress throughput 134.34KiB/CPU-s 1.46 100.00% 8.96MiB/CPU-s 237.06KiB/CPU-s 3.06KiB/CPU-s 0.0 0.025828 9.09MiB/CPU-s 252.22KiB/CPU-s 3.25KiB/CPU-s 0.0 0.027084 False False
http_text_to_http_json ingress throughput 374.87KiB/CPU-s 1.45 100.00% 25.31MiB/CPU-s 893.95KiB/CPU-s 11.54KiB/CPU-s 0.0 0.034491 25.67MiB/CPU-s 1.06MiB/CPU-s 13.98KiB/CPU-s 0.0 0.041202 False False
otlp_http_to_blackhole ingress throughput 17.72KiB/CPU-s 1.12 100.00% 1.54MiB/CPU-s 118.8KiB/CPU-s 1.53KiB/CPU-s 0.0 0.075334 1.56MiB/CPU-s 104.0KiB/CPU-s 1.34KiB/CPU-s 0.0 0.065214 False False
syslog_log2metric_splunk_hec_metrics ingress throughput 104.08KiB/CPU-s 1.10 100.00% 9.27MiB/CPU-s 371.26KiB/CPU-s 4.79KiB/CPU-s 0.0 0.039109 9.37MiB/CPU-s 347.45KiB/CPU-s 4.48KiB/CPU-s 0.0 0.036205 False False
http_to_http_json ingress throughput 149.97KiB/CPU-s 1.09 100.00% 13.45MiB/CPU-s 480.78KiB/CPU-s 6.2KiB/CPU-s 0.0 0.034895 13.6MiB/CPU-s 264.05KiB/CPU-s 3.41KiB/CPU-s 0.0 0.018958 False False
splunk_hec_route_s3 ingress throughput 86.24KiB/CPU-s 0.71 100.00% 11.82MiB/CPU-s 681.74KiB/CPU-s 8.8KiB/CPU-s 0.0 0.056322 11.9MiB/CPU-s 620.84KiB/CPU-s 8.01KiB/CPU-s 0.0 0.050928 False False
datadog_agent_remap_datadog_logs ingress throughput 135.22KiB/CPU-s 0.41 99.97% 32.44MiB/CPU-s 2.12MiB/CPU-s 28.06KiB/CPU-s 0.0 0.065472 32.57MiB/CPU-s 1.89MiB/CPU-s 24.93KiB/CPU-s 0.0 0.057922 False False
enterprise_http_to_http ingress throughput 4.13KiB/CPU-s 0.03 75.96% 13.62MiB/CPU-s 225.45KiB/CPU-s 2.91KiB/CPU-s 0.0 0.016163 13.62MiB/CPU-s 153.57KiB/CPU-s 1.98KiB/CPU-s 0.0 0.011007 False False
http_to_http_noack ingress throughput 1.88KiB/CPU-s 0.01 25.36% 13.61MiB/CPU-s 326.57KiB/CPU-s 4.21KiB/CPU-s 0.0 0.023427 13.61MiB/CPU-s 309.8KiB/CPU-s 4.0KiB/CPU-s 0.0 0.022221 False False
splunk_hec_indexer_ack_blackhole ingress throughput 178.24B/CPU-s 0.00 2.97% 13.62MiB/CPU-s 257.2KiB/CPU-s 3.32KiB/CPU-s 0.0 0.018446 13.62MiB/CPU-s 256.06KiB/CPU-s 3.3KiB/CPU-s 0.0 0.018364 False False
fluent_elasticsearch ingress throughput -72.05B/CPU-s -0.00 10.29% 45.41MiB/CPU-s 30.17KiB/CPU-s 394.44B/CPU-s 0.0 0.000649 45.41MiB/CPU-s 30.09KiB/CPU-s 393.23B/CPU-s 0.0 0.000647 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -505.37B/CPU-s -0.00 7.31% 13.61MiB/CPU-s 269.39KiB/CPU-s 3.48KiB/CPU-s 0.0 0.019321 13.61MiB/CPU-s 318.15KiB/CPU-s 4.1KiB/CPU-s 0.0 0.022819 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -940.69B/CPU-s -0.01 10.70% 13.61MiB/CPU-s 361.64KiB/CPU-s 4.67KiB/CPU-s 0.0 0.025937 13.61MiB/CPU-s 386.76KiB/CPU-s 4.99KiB/CPU-s 0.0 0.02774 False False
http_to_http_acks ingress throughput -33.99KiB/CPU-s -0.63 48.85% 5.25MiB/CPU-s 2.8MiB/CPU-s 37.01KiB/CPU-s 0.0 0.533327 5.22MiB/CPU-s 2.74MiB/CPU-s 36.2KiB/CPU-s 0.0 0.5251 True False
syslog_log2metric_humio_metrics ingress throughput -77.87KiB/CPU-s -1.22 100.00% 6.22MiB/CPU-s 459.72KiB/CPU-s 5.94KiB/CPU-s 0.0 0.072136 6.15MiB/CPU-s 497.9KiB/CPU-s 6.43KiB/CPU-s 0.0 0.079092 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -885.11KiB/CPU-s -2.64 100.00% 32.68MiB/CPU-s 1.41MiB/CPU-s 18.68KiB/CPU-s 0.0 0.043264 31.82MiB/CPU-s 1.52MiB/CPU-s 20.07KiB/CPU-s 0.0 0.047739 False False
datadog_agent_remap_blackhole_acks ingress throughput -1.04MiB/CPU-s -3.24 100.00% 31.91MiB/CPU-s 991.52KiB/CPU-s 12.8KiB/CPU-s 0.0 0.030346 30.87MiB/CPU-s 1.37MiB/CPU-s 18.1KiB/CPU-s 0.0 0.044342 False False
datadog_agent_remap_blackhole ingress throughput -1.03MiB/CPU-s -3.28 100.00% 31.3MiB/CPU-s 1.7MiB/CPU-s 22.42KiB/CPU-s 0.0 0.054223 30.27MiB/CPU-s 2.05MiB/CPU-s 27.08KiB/CPU-s 0.0 0.067701 False False

@github-actions
Copy link

Regression Detector Results

Run ID: 868c0e6e-97f2-4140-ae69-83d23b66cdde
Baseline: 1e97a2f
Comparison: f67a09e
Total vector CPUs: 7

Explanation

A regression test is an integrated performance test for vector in a repeatable rig, with varying configuration for vector. What follows is a statistical summary of a brief vector run for each configuration across SHAs given above. The goal of these tests are to determine quickly if vector performance is changed and to what degree by a pull request.

The table below, if present, lists those experiments that have experienced a statistically significant change in mean optimization goal performance between baseline and comparison SHAs with 90.00% confidence OR have been detected as newly erratic. Negative values mean that baseline is faster, positive comparison. Results that do not exhibit more than a ±5.00% change in their mean optimization goal are discarded. An experiment is erratic if its coefficient of variation is greater than 0.1. The abbreviated table will be omitted if no interesting change is observed.

No interesting changes in experiment optimization goals with confidence ≥ 90.00% and |Δ mean %| ≥ 5.00%.

Fine details of change detection per experiment.
experiment goal Δ mean Δ mean % confidence baseline mean baseline stdev baseline stderr baseline outlier % baseline CoV comparison mean comparison stdev comparison stderr comparison outlier % comparison CoV erratic declared erratic
file_to_blackhole egress throughput 1.88MiB/CPU-s 33.08 100.00% 5.68MiB/CPU-s 4.63MiB/CPU-s 123.67KiB/CPU-s 0.0 0.815552 7.55MiB/CPU-s 3.88MiB/CPU-s 140.1KiB/CPU-s 0.0 0.513909 True True
syslog_splunk_hec_logs ingress throughput 240.23KiB/CPU-s 2.67 100.00% 8.79MiB/CPU-s 337.75KiB/CPU-s 4.36KiB/CPU-s 0.0 0.037527 9.02MiB/CPU-s 224.19KiB/CPU-s 2.89KiB/CPU-s 0.0 0.024262 False False
http_text_to_http_json ingress throughput 548.69KiB/CPU-s 2.11 100.00% 25.36MiB/CPU-s 789.26KiB/CPU-s 10.18KiB/CPU-s 0.0 0.030386 25.9MiB/CPU-s 936.94KiB/CPU-s 12.1KiB/CPU-s 0.0 0.035325 False False
datadog_agent_remap_datadog_logs_acks ingress throughput 441.18KiB/CPU-s 1.37 100.00% 31.55MiB/CPU-s 1.62MiB/CPU-s 21.42KiB/CPU-s 0.0 0.051373 31.98MiB/CPU-s 1.62MiB/CPU-s 21.4KiB/CPU-s 0.0 0.050628 False False
syslog_log2metric_splunk_hec_metrics ingress throughput 132.4KiB/CPU-s 1.36 100.00% 9.47MiB/CPU-s 359.89KiB/CPU-s 4.64KiB/CPU-s 0.0 0.037092 9.6MiB/CPU-s 211.91KiB/CPU-s 2.73KiB/CPU-s 0.0 0.021546 False False
otlp_grpc_to_blackhole ingress throughput 12.21KiB/CPU-s 1.15 100.00% 1.04MiB/CPU-s 58.52KiB/CPU-s 773.2B/CPU-s 0.0 0.054986 1.05MiB/CPU-s 54.75KiB/CPU-s 723.64B/CPU-s 0.0 0.050865 False False
datadog_agent_remap_datadog_logs ingress throughput 355.75KiB/CPU-s 1.06 100.00% 32.68MiB/CPU-s 1.85MiB/CPU-s 24.4KiB/CPU-s 0.0 0.056488 33.03MiB/CPU-s 1.54MiB/CPU-s 20.36KiB/CPU-s 0.0 0.046646 False False
syslog_loki ingress throughput 82.99KiB/CPU-s 0.95 100.00% 8.51MiB/CPU-s 363.64KiB/CPU-s 4.69KiB/CPU-s 0.0 0.041733 8.59MiB/CPU-s 247.52KiB/CPU-s 3.19KiB/CPU-s 0.0 0.028138 False False
otlp_http_to_blackhole ingress throughput 6.63KiB/CPU-s 0.41 99.98% 1.58MiB/CPU-s 105.73KiB/CPU-s 1.36KiB/CPU-s 0.0 0.065276 1.59MiB/CPU-s 85.64KiB/CPU-s 1.11KiB/CPU-s 0.0 0.052657 False False
syslog_log2metric_humio_metrics ingress throughput 16.54KiB/CPU-s 0.26 99.31% 6.27MiB/CPU-s 270.37KiB/CPU-s 3.49KiB/CPU-s 0.0 0.042122 6.28MiB/CPU-s 389.87KiB/CPU-s 5.03KiB/CPU-s 0.0 0.060582 False False
socket_to_socket_blackhole ingress throughput 18.89KiB/CPU-s 0.14 94.86% 13.5MiB/CPU-s 488.52KiB/CPU-s 6.3KiB/CPU-s 0.0 0.035347 13.51MiB/CPU-s 570.71KiB/CPU-s 7.37KiB/CPU-s 0.0 0.041237 False False
http_to_http_noack ingress throughput 4.27KiB/CPU-s 0.03 51.98% 13.61MiB/CPU-s 350.19KiB/CPU-s 4.52KiB/CPU-s 0.0 0.025125 13.61MiB/CPU-s 311.18KiB/CPU-s 4.02KiB/CPU-s 0.0 0.022319 False False
enterprise_http_to_http ingress throughput 4.0KiB/CPU-s 0.03 72.29% 13.62MiB/CPU-s 225.95KiB/CPU-s 2.92KiB/CPU-s 0.0 0.016199 13.62MiB/CPU-s 173.81KiB/CPU-s 2.24KiB/CPU-s 0.0 0.012458 False False
splunk_hec_indexer_ack_blackhole ingress throughput 2.24KiB/CPU-s 0.02 37.02% 13.61MiB/CPU-s 259.9KiB/CPU-s 3.35KiB/CPU-s 0.0 0.01864 13.62MiB/CPU-s 249.94KiB/CPU-s 3.22KiB/CPU-s 0.0 0.017923 False False
fluent_elasticsearch ingress throughput -118.3B/CPU-s -0.00 16.85% 45.41MiB/CPU-s 30.36KiB/CPU-s 396.64B/CPU-s 0.0 0.000653 45.41MiB/CPU-s 29.81KiB/CPU-s 389.81B/CPU-s 0.0 0.000641 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput 517.16B/CPU-s 0.00 6.27% 13.61MiB/CPU-s 354.3KiB/CPU-s 4.57KiB/CPU-s 0.0 0.025414 13.61MiB/CPU-s 349.68KiB/CPU-s 4.51KiB/CPU-s 0.0 0.025082 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -10.45B/CPU-s -0.00 0.16% 13.61MiB/CPU-s 272.5KiB/CPU-s 3.52KiB/CPU-s 0.0 0.019545 13.61MiB/CPU-s 269.87KiB/CPU-s 3.48KiB/CPU-s 0.0 0.019357 False False
http_to_http_json ingress throughput -22.43KiB/CPU-s -0.16 100.00% 13.62MiB/CPU-s 234.14KiB/CPU-s 3.02KiB/CPU-s 0.0 0.016785 13.6MiB/CPU-s 286.73KiB/CPU-s 3.7KiB/CPU-s 0.0 0.020589 False False
http_to_http_acks ingress throughput -17.47KiB/CPU-s -0.33 26.95% 5.23MiB/CPU-s 2.72MiB/CPU-s 36.01KiB/CPU-s 0.0 0.521269 5.21MiB/CPU-s 2.7MiB/CPU-s 35.71KiB/CPU-s 0.0 0.518666 True False
datadog_agent_remap_blackhole ingress throughput -180.4KiB/CPU-s -0.56 100.00% 31.42MiB/CPU-s 1.03MiB/CPU-s 13.59KiB/CPU-s 0.0 0.032732 31.24MiB/CPU-s 1.07MiB/CPU-s 14.18KiB/CPU-s 0.0 0.034345 False False
syslog_humio_logs ingress throughput -155.55KiB/CPU-s -1.64 100.00% 9.26MiB/CPU-s 187.3KiB/CPU-s 2.42KiB/CPU-s 0.0 0.01975 9.11MiB/CPU-s 347.81KiB/CPU-s 4.49KiB/CPU-s 0.0 0.037287 False False
splunk_hec_route_s3 ingress throughput -224.17KiB/CPU-s -1.85 100.00% 11.84MiB/CPU-s 694.85KiB/CPU-s 8.96KiB/CPU-s 0.0 0.0573 11.62MiB/CPU-s 682.69KiB/CPU-s 8.81KiB/CPU-s 0.0 0.057358 False False
datadog_agent_remap_blackhole_acks ingress throughput -689.37KiB/CPU-s -2.18 100.00% 30.87MiB/CPU-s 1.15MiB/CPU-s 15.15KiB/CPU-s 0.0 0.037122 30.2MiB/CPU-s 1.77MiB/CPU-s 23.4KiB/CPU-s 0.0 0.058627 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -80.41KiB/CPU-s -2.20 100.00% 3.57MiB/CPU-s 476.56KiB/CPU-s 6.15KiB/CPU-s 0.0 0.130377 3.49MiB/CPU-s 440.06KiB/CPU-s 5.68KiB/CPU-s 0.0 0.123098 True True

@tobz tobz added the ci-condition: integration tests enable Run integration tests on this PR label Apr 18, 2023
@tobz
Copy link
Contributor Author

tobz commented Apr 18, 2023

Thinking more about the batch stuff... my belief is that we can leave it as it exists in this PR for now, and revisit the behavior later.

Essentially, the current behavior only batches when using UDP, specifically to limit the encoded output size to avoid UDP fragmentation. TCP and Unix send one at a time. In this PR, we're letting all three batch, but they'll all be limited by the byte size limit way before they hit the item limit.

TCP and Unix socket mode can both handle being batched just fine, in terms of the protocol: StatsD messages are always newline-delimited anyways. In this case, we'll actually begin to do some amount of batching for TCP/Unix sockets, but mostly just not as much as would be optimal. We'll still be maintaining the primary constraint that we try to reduce UDP fragmentation, though.

@github-actions
Copy link

Regression Detector Results

Run ID: ba05c634-3e83-4125-b6e2-6df33232e44f
Baseline: 05a3f44
Comparison: 35cde29
Total vector CPUs: 7

Explanation

A regression test is an integrated performance test for vector in a repeatable rig, with varying configuration for vector. What follows is a statistical summary of a brief vector run for each configuration across SHAs given above. The goal of these tests are to determine quickly if vector performance is changed and to what degree by a pull request.

The table below, if present, lists those experiments that have experienced a statistically significant change in mean optimization goal performance between baseline and comparison SHAs with 90.00% confidence OR have been detected as newly erratic. Negative values mean that baseline is faster, positive comparison. Results that do not exhibit more than a ±5.00% change in their mean optimization goal are discarded. An experiment is erratic if its coefficient of variation is greater than 0.1. The abbreviated table will be omitted if no interesting change is observed.

No interesting changes in experiment optimization goals with confidence ≥ 90.00% and |Δ mean %| ≥ 5.00%.

Fine details of change detection per experiment.
experiment goal Δ mean Δ mean % confidence baseline mean baseline stdev baseline stderr baseline outlier % baseline CoV comparison mean comparison stdev comparison stderr comparison outlier % comparison CoV erratic declared erratic
http_text_to_http_json ingress throughput 947.45KiB/CPU-s 3.68 100.00% 25.15MiB/CPU-s 592.43KiB/CPU-s 7.65KiB/CPU-s 0.0 0.022998 26.08MiB/CPU-s 901.02KiB/CPU-s 11.63KiB/CPU-s 0.0 0.033737 False False
datadog_agent_remap_blackhole_acks ingress throughput 928.78KiB/CPU-s 2.97 100.00% 30.52MiB/CPU-s 1.05MiB/CPU-s 13.9KiB/CPU-s 0.0 0.034461 31.43MiB/CPU-s 877.85KiB/CPU-s 11.33KiB/CPU-s 0.0 0.027276 False False
socket_to_socket_blackhole ingress throughput 336.86KiB/CPU-s 2.48 100.00% 13.26MiB/CPU-s 307.99KiB/CPU-s 3.97KiB/CPU-s 0.0 0.022673 13.59MiB/CPU-s 265.44KiB/CPU-s 3.43KiB/CPU-s 0.0 0.019068 False False
otlp_grpc_to_blackhole ingress throughput 11.96KiB/CPU-s 1.16 100.00% 1.0MiB/CPU-s 51.49KiB/CPU-s 680.34B/CPU-s 0.0 0.050092 1.02MiB/CPU-s 45.02KiB/CPU-s 594.95B/CPU-s 0.0 0.043293 False False
splunk_hec_route_s3 ingress throughput 126.72KiB/CPU-s 1.08 100.00% 11.48MiB/CPU-s 632.55KiB/CPU-s 8.16KiB/CPU-s 0.0 0.053813 11.6MiB/CPU-s 658.75KiB/CPU-s 8.5KiB/CPU-s 0.0 0.055444 False False
syslog_loki ingress throughput 58.71KiB/CPU-s 0.69 100.00% 8.37MiB/CPU-s 223.61KiB/CPU-s 2.88KiB/CPU-s 0.0 0.026088 8.43MiB/CPU-s 261.86KiB/CPU-s 3.38KiB/CPU-s 0.0 0.030342 False False
datadog_agent_remap_datadog_logs_acks ingress throughput 159.03KiB/CPU-s 0.48 100.00% 32.06MiB/CPU-s 1.23MiB/CPU-s 16.29KiB/CPU-s 0.0 0.038458 32.22MiB/CPU-s 1.36MiB/CPU-s 17.97KiB/CPU-s 0.0 0.042203 False False
file_to_blackhole egress throughput 30.19KiB/CPU-s 0.39 12.06% 7.55MiB/CPU-s 3.93MiB/CPU-s 141.87KiB/CPU-s 0.0 0.5204 7.58MiB/CPU-s 3.87MiB/CPU-s 139.41KiB/CPU-s 0.0 0.510027 True True
datadog_agent_remap_datadog_logs ingress throughput 108.37KiB/CPU-s 0.33 100.00% 32.19MiB/CPU-s 1.32MiB/CPU-s 17.45KiB/CPU-s 0.0 0.041013 32.3MiB/CPU-s 1.44MiB/CPU-s 19.06KiB/CPU-s 0.0 0.04467 False False
http_to_http_acks ingress throughput 17.07KiB/CPU-s 0.32 26.33% 5.25MiB/CPU-s 2.73MiB/CPU-s 36.07KiB/CPU-s 0.0 0.519191 5.27MiB/CPU-s 2.7MiB/CPU-s 35.75KiB/CPU-s 0.0 0.513065 True False
http_to_http_json ingress throughput 37.68KiB/CPU-s 0.27 100.00% 13.58MiB/CPU-s 276.85KiB/CPU-s 3.57KiB/CPU-s 0.0 0.019901 13.62MiB/CPU-s 227.9KiB/CPU-s 2.94KiB/CPU-s 0.0 0.016338 False False
syslog_humio_logs ingress throughput 13.95KiB/CPU-s 0.15 99.95% 8.96MiB/CPU-s 209.94KiB/CPU-s 2.71KiB/CPU-s 0.0 0.022889 8.97MiB/CPU-s 230.49KiB/CPU-s 2.97KiB/CPU-s 0.0 0.025091 False False
otlp_http_to_blackhole ingress throughput 2.02KiB/CPU-s 0.13 70.23% 1.56MiB/CPU-s 112.31KiB/CPU-s 1.45KiB/CPU-s 0.0 0.070342 1.56MiB/CPU-s 99.43KiB/CPU-s 1.28KiB/CPU-s 0.0 0.062195 False False
http_to_http_noack ingress throughput 14.49KiB/CPU-s 0.10 98.04% 13.6MiB/CPU-s 406.52KiB/CPU-s 5.24KiB/CPU-s 0.0 0.02918 13.62MiB/CPU-s 256.93KiB/CPU-s 3.32KiB/CPU-s 0.0 0.018423 False False
enterprise_http_to_http ingress throughput 1.85KiB/CPU-s 0.01 44.17% 13.62MiB/CPU-s 191.48KiB/CPU-s 2.47KiB/CPU-s 0.0 0.013726 13.62MiB/CPU-s 151.52KiB/CPU-s 1.96KiB/CPU-s 0.0 0.01086 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -53.48B/CPU-s -0.00 0.60% 13.61MiB/CPU-s 383.12KiB/CPU-s 4.94KiB/CPU-s 0.0 0.02748 13.61MiB/CPU-s 377.72KiB/CPU-s 4.87KiB/CPU-s 0.0 0.027093 False False
fluent_elasticsearch ingress throughput 232.68B/CPU-s 0.00 32.31% 45.41MiB/CPU-s 30.36KiB/CPU-s 396.74B/CPU-s 0.0 0.000653 45.41MiB/CPU-s 30.08KiB/CPU-s 392.94B/CPU-s 0.0 0.000647 False False
splunk_hec_indexer_ack_blackhole ingress throughput -887.13B/CPU-s -0.01 14.44% 13.62MiB/CPU-s 259.67KiB/CPU-s 3.35KiB/CPU-s 0.0 0.018623 13.61MiB/CPU-s 262.35KiB/CPU-s 3.38KiB/CPU-s 0.0 0.018816 False False
syslog_log2metric_splunk_hec_metrics ingress throughput -1.78KiB/CPU-s -0.02 37.86% 9.32MiB/CPU-s 197.92KiB/CPU-s 2.55KiB/CPU-s 0.0 0.020746 9.31MiB/CPU-s 197.75KiB/CPU-s 2.55KiB/CPU-s 0.0 0.020733 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -2.9KiB/CPU-s -0.02 45.83% 13.62MiB/CPU-s 250.72KiB/CPU-s 3.23KiB/CPU-s 0.0 0.017979 13.61MiB/CPU-s 270.43KiB/CPU-s 3.49KiB/CPU-s 0.0 0.019396 False False
datadog_agent_remap_blackhole ingress throughput -132.53KiB/CPU-s -0.41 100.00% 31.21MiB/CPU-s 1.05MiB/CPU-s 13.93KiB/CPU-s 0.0 0.033797 31.08MiB/CPU-s 963.57KiB/CPU-s 12.43KiB/CPU-s 0.0 0.030276 False False
syslog_log2metric_humio_metrics ingress throughput -100.94KiB/CPU-s -1.55 100.00% 6.36MiB/CPU-s 280.88KiB/CPU-s 3.63KiB/CPU-s 0.0 0.043107 6.26MiB/CPU-s 245.67KiB/CPU-s 3.17KiB/CPU-s 0.0 0.038296 False False
syslog_splunk_hec_logs ingress throughput -140.98KiB/CPU-s -1.55 100.00% 8.86MiB/CPU-s 241.64KiB/CPU-s 3.12KiB/CPU-s 0.0 0.026631 8.72MiB/CPU-s 344.73KiB/CPU-s 4.45KiB/CPU-s 0.0 0.038592 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -61.01KiB/CPU-s -1.69 100.00% 3.53MiB/CPU-s 309.45KiB/CPU-s 3.99KiB/CPU-s 0.0 0.085552 3.47MiB/CPU-s 398.38KiB/CPU-s 5.14KiB/CPU-s 0.0 0.112027 True True

@datadog-vectordotdev
Copy link

datadog-vectordotdev bot commented Apr 19, 2023

Datadog Report

Branch report: tobz/rewrite-statsd-sink
Commit report: dd8e867

vector: 0 Failed, 0 New Flaky, 2159 Passed, 0 Skipped, 8m 26.5s Wall Time

@github-actions
Copy link

Regression Detector Results

Run ID: 9d3bfd81-0cde-4403-ad55-3fc634226e75
Baseline: 3c92556
Comparison: 292b171
Total vector CPUs: 7

Explanation

A regression test is an integrated performance test for vector in a repeatable rig, with varying configuration for vector. What follows is a statistical summary of a brief vector run for each configuration across SHAs given above. The goal of these tests are to determine quickly if vector performance is changed and to what degree by a pull request.

The table below, if present, lists those experiments that have experienced a statistically significant change in mean optimization goal performance between baseline and comparison SHAs with 90.00% confidence OR have been detected as newly erratic. Negative values mean that baseline is faster, positive comparison. Results that do not exhibit more than a ±5.00% change in their mean optimization goal are discarded. An experiment is erratic if its coefficient of variation is greater than 0.1. The abbreviated table will be omitted if no interesting change is observed.

No interesting changes in experiment optimization goals with confidence ≥ 90.00% and |Δ mean %| ≥ 5.00%.

Fine details of change detection per experiment.
experiment goal Δ mean Δ mean % confidence baseline mean baseline stdev baseline stderr baseline outlier % baseline CoV comparison mean comparison stdev comparison stderr comparison outlier % comparison CoV erratic declared erratic
file_to_blackhole egress throughput 218.57KiB/CPU-s 2.96 73.20% 7.2MiB/CPU-s 3.89MiB/CPU-s 137.85KiB/CPU-s 0.0 0.539126 7.42MiB/CPU-s 3.95MiB/CPU-s 141.1KiB/CPU-s 0.0 0.532082 True True
http_text_to_http_json ingress throughput 750.2KiB/CPU-s 2.92 100.00% 25.09MiB/CPU-s 574.56KiB/CPU-s 7.42KiB/CPU-s 0.0 0.022365 25.82MiB/CPU-s 776.28KiB/CPU-s 10.02KiB/CPU-s 0.0 0.02936 False False
datadog_agent_remap_blackhole ingress throughput 712.19KiB/CPU-s 2.31 100.00% 30.15MiB/CPU-s 1.3MiB/CPU-s 17.22KiB/CPU-s 0.0 0.043211 30.85MiB/CPU-s 1.14MiB/CPU-s 15.08KiB/CPU-s 0.0 0.036989 False False
syslog_log2metric_humio_metrics ingress throughput 94.94KiB/CPU-s 1.46 100.00% 6.35MiB/CPU-s 198.34KiB/CPU-s 2.56KiB/CPU-s 0.0 0.030493 6.44MiB/CPU-s 175.2KiB/CPU-s 2.26KiB/CPU-s 0.0 0.026548 False False
datadog_agent_remap_blackhole_acks ingress throughput 418.0KiB/CPU-s 1.34 100.00% 30.57MiB/CPU-s 1.1MiB/CPU-s 14.57KiB/CPU-s 0.0 0.036067 30.98MiB/CPU-s 867.15KiB/CPU-s 11.19KiB/CPU-s 0.0 0.02733 False False
syslog_splunk_hec_logs ingress throughput 76.22KiB/CPU-s 0.84 100.00% 8.9MiB/CPU-s 275.53KiB/CPU-s 3.55KiB/CPU-s 0.0 0.030242 8.97MiB/CPU-s 202.35KiB/CPU-s 2.61KiB/CPU-s 0.0 0.022025 False False
splunk_hec_route_s3 ingress throughput 84.18KiB/CPU-s 0.70 100.00% 11.71MiB/CPU-s 629.6KiB/CPU-s 8.12KiB/CPU-s 0.0 0.052523 11.79MiB/CPU-s 606.16KiB/CPU-s 7.82KiB/CPU-s 0.0 0.050215 False False
socket_to_socket_blackhole ingress throughput 51.78KiB/CPU-s 0.38 100.00% 13.29MiB/CPU-s 404.95KiB/CPU-s 5.22KiB/CPU-s 0.0 0.029752 13.34MiB/CPU-s 443.14KiB/CPU-s 5.72KiB/CPU-s 0.0 0.032435 False False
datadog_agent_remap_datadog_logs_acks ingress throughput 110.92KiB/CPU-s 0.34 100.00% 32.07MiB/CPU-s 1.38MiB/CPU-s 18.22KiB/CPU-s 0.0 0.042997 32.18MiB/CPU-s 1.33MiB/CPU-s 17.52KiB/CPU-s 0.0 0.041204 False False
enterprise_http_to_http ingress throughput 5.93KiB/CPU-s 0.04 87.90% 13.62MiB/CPU-s 254.59KiB/CPU-s 3.29KiB/CPU-s 0.0 0.018255 13.62MiB/CPU-s 151.34KiB/CPU-s 1.95KiB/CPU-s 0.0 0.010847 False False
http_to_http_noack ingress throughput 4.19KiB/CPU-s 0.03 44.61% 13.6MiB/CPU-s 406.93KiB/CPU-s 5.25KiB/CPU-s 0.0 0.029209 13.61MiB/CPU-s 368.93KiB/CPU-s 4.76KiB/CPU-s 0.0 0.026473 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -31.23B/CPU-s -0.00 0.36% 13.61MiB/CPU-s 367.93KiB/CPU-s 4.75KiB/CPU-s 0.0 0.026391 13.61MiB/CPU-s 366.5KiB/CPU-s 4.73KiB/CPU-s 0.0 0.026288 False False
fluent_elasticsearch ingress throughput 183.24B/CPU-s 0.00 25.95% 45.41MiB/CPU-s 29.97KiB/CPU-s 391.77B/CPU-s 0.0 0.000644 45.41MiB/CPU-s 29.89KiB/CPU-s 390.7B/CPU-s 0.0 0.000643 False False
http_to_http_json ingress throughput 484.23B/CPU-s 0.00 9.10% 13.62MiB/CPU-s 226.91KiB/CPU-s 2.93KiB/CPU-s 0.0 0.016267 13.62MiB/CPU-s 226.6KiB/CPU-s 2.92KiB/CPU-s 0.0 0.016245 False False
splunk_hec_indexer_ack_blackhole ingress throughput 181.28B/CPU-s 0.00 2.98% 13.62MiB/CPU-s 260.5KiB/CPU-s 3.36KiB/CPU-s 0.0 0.018682 13.62MiB/CPU-s 259.19KiB/CPU-s 3.34KiB/CPU-s 0.0 0.018588 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -1.15KiB/CPU-s -0.01 18.48% 13.62MiB/CPU-s 264.83KiB/CPU-s 3.42KiB/CPU-s 0.0 0.018993 13.61MiB/CPU-s 272.91KiB/CPU-s 3.52KiB/CPU-s 0.0 0.019574 False False
otlp_grpc_to_blackhole ingress throughput -3.79KiB/CPU-s -0.37 100.00% 1.01MiB/CPU-s 49.53KiB/CPU-s 654.53B/CPU-s 0.0 0.047814 1.01MiB/CPU-s 47.68KiB/CPU-s 630.15B/CPU-s 0.0 0.046197 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -15.55KiB/CPU-s -0.42 96.74% 3.62MiB/CPU-s 367.42KiB/CPU-s 4.74KiB/CPU-s 0.0 0.099006 3.61MiB/CPU-s 427.26KiB/CPU-s 5.52KiB/CPU-s 0.0 0.115615 True True
syslog_log2metric_splunk_hec_metrics ingress throughput -45.4KiB/CPU-s -0.47 100.00% 9.36MiB/CPU-s 238.68KiB/CPU-s 3.08KiB/CPU-s 0.0 0.024904 9.31MiB/CPU-s 232.81KiB/CPU-s 3.0KiB/CPU-s 0.0 0.024407 False False
datadog_agent_remap_datadog_logs ingress throughput -181.3KiB/CPU-s -0.54 100.00% 32.53MiB/CPU-s 1.65MiB/CPU-s 21.8KiB/CPU-s 0.0 0.050723 32.35MiB/CPU-s 1.59MiB/CPU-s 21.01KiB/CPU-s 0.0 0.049153 False False
http_to_http_acks ingress throughput -34.32KiB/CPU-s -0.64 49.83% 5.25MiB/CPU-s 2.73MiB/CPU-s 36.1KiB/CPU-s 0.0 0.52057 5.21MiB/CPU-s 2.73MiB/CPU-s 36.14KiB/CPU-s 0.0 0.524348 True False
otlp_http_to_blackhole ingress throughput -10.4KiB/CPU-s -0.65 100.00% 1.56MiB/CPU-s 116.07KiB/CPU-s 1.5KiB/CPU-s 0.0 0.072614 1.55MiB/CPU-s 114.76KiB/CPU-s 1.48KiB/CPU-s 0.0 0.072264 False False
syslog_loki ingress throughput -67.68KiB/CPU-s -0.79 100.00% 8.39MiB/CPU-s 242.41KiB/CPU-s 3.13KiB/CPU-s 0.0 0.028211 8.32MiB/CPU-s 290.08KiB/CPU-s 3.74KiB/CPU-s 0.0 0.034027 False False
syslog_humio_logs ingress throughput -171.83KiB/CPU-s -1.87 100.00% 8.97MiB/CPU-s 362.54KiB/CPU-s 4.68KiB/CPU-s 0.0 0.039463 8.8MiB/CPU-s 295.09KiB/CPU-s 3.81KiB/CPU-s 0.0 0.032734 False False

@github-actions
Copy link

Regression Detector Results

Run ID: c9554b9f-bac1-420b-8757-959d8f6dd67c
Baseline: c169131
Comparison: 332dff2
Total vector CPUs: 7

Explanation

A regression test is an integrated performance test for vector in a repeatable rig, with varying configuration for vector. What follows is a statistical summary of a brief vector run for each configuration across SHAs given above. The goal of these tests are to determine quickly if vector performance is changed and to what degree by a pull request.

The table below, if present, lists those experiments that have experienced a statistically significant change in mean optimization goal performance between baseline and comparison SHAs with 90.00% confidence OR have been detected as newly erratic. Negative values mean that baseline is faster, positive comparison. Results that do not exhibit more than a ±5.00% change in their mean optimization goal are discarded. An experiment is erratic if its coefficient of variation is greater than 0.1. The abbreviated table will be omitted if no interesting change is observed.

No interesting changes in experiment optimization goals with confidence ≥ 90.00% and |Δ mean %| ≥ 5.00%.

Fine details of change detection per experiment.
experiment goal Δ mean Δ mean % confidence baseline mean baseline stdev baseline stderr baseline outlier % baseline CoV comparison mean comparison stdev comparison stderr comparison outlier % comparison CoV erratic declared erratic
datadog_agent_remap_blackhole ingress throughput 780.85KiB/CPU-s 2.53 100.00% 30.19MiB/CPU-s 1.51MiB/CPU-s 19.91KiB/CPU-s 0.0 0.049903 30.96MiB/CPU-s 1.47MiB/CPU-s 19.45KiB/CPU-s 0.0 0.047533 False False
http_text_to_http_json ingress throughput 389.4KiB/CPU-s 1.54 100.00% 24.63MiB/CPU-s 719.89KiB/CPU-s 9.29KiB/CPU-s 0.0 0.028543 25.01MiB/CPU-s 593.65KiB/CPU-s 7.66KiB/CPU-s 0.0 0.02318 False False
syslog_splunk_hec_logs ingress throughput 123.14KiB/CPU-s 1.35 100.00% 8.9MiB/CPU-s 398.79KiB/CPU-s 5.14KiB/CPU-s 0.0 0.043753 9.02MiB/CPU-s 228.29KiB/CPU-s 2.95KiB/CPU-s 0.0 0.024712 False False
http_to_http_acks ingress throughput 65.85KiB/CPU-s 1.23 80.22% 5.25MiB/CPU-s 2.73MiB/CPU-s 36.14KiB/CPU-s 0.0 0.521338 5.31MiB/CPU-s 2.74MiB/CPU-s 36.17KiB/CPU-s 0.0 0.515315 True False
splunk_hec_route_s3 ingress throughput 99.25KiB/CPU-s 0.85 100.00% 11.42MiB/CPU-s 721.98KiB/CPU-s 9.32KiB/CPU-s 0.0 0.06171 11.52MiB/CPU-s 699.9KiB/CPU-s 9.03KiB/CPU-s 0.0 0.05932 False False
syslog_log2metric_humio_metrics ingress throughput 9.44KiB/CPU-s 0.15 87.53% 6.32MiB/CPU-s 380.82KiB/CPU-s 4.92KiB/CPU-s 0.0 0.058861 6.33MiB/CPU-s 285.98KiB/CPU-s 3.69KiB/CPU-s 0.0 0.044138 False False
enterprise_http_to_http ingress throughput 4.13KiB/CPU-s 0.03 75.82% 13.62MiB/CPU-s 226.95KiB/CPU-s 2.93KiB/CPU-s 0.0 0.016271 13.62MiB/CPU-s 152.19KiB/CPU-s 1.96KiB/CPU-s 0.0 0.010908 False False
http_to_http_noack ingress throughput 2.03KiB/CPU-s 0.01 27.59% 13.61MiB/CPU-s 326.66KiB/CPU-s 4.22KiB/CPU-s 0.0 0.023433 13.61MiB/CPU-s 303.9KiB/CPU-s 3.92KiB/CPU-s 0.0 0.021797 False False
otlp_grpc_to_blackhole ingress throughput 80.94B/CPU-s 0.01 6.89% 1.03MiB/CPU-s 52.68KiB/CPU-s 695.96B/CPU-s 0.0 0.049765 1.03MiB/CPU-s 47.41KiB/CPU-s 626.64B/CPU-s 0.0 0.04479 False False
fluent_elasticsearch ingress throughput 327.67B/CPU-s 0.00 43.99% 45.41MiB/CPU-s 29.98KiB/CPU-s 391.84B/CPU-s 0.0 0.000645 45.41MiB/CPU-s 30.86KiB/CPU-s 403.26B/CPU-s 0.0 0.000663 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -1.09KiB/CPU-s -0.01 12.57% 13.61MiB/CPU-s 372.18KiB/CPU-s 4.8KiB/CPU-s 0.0 0.026695 13.61MiB/CPU-s 381.81KiB/CPU-s 4.93KiB/CPU-s 0.0 0.027389 False False
splunk_hec_indexer_ack_blackhole ingress throughput -2.72KiB/CPU-s -0.02 43.86% 13.62MiB/CPU-s 248.26KiB/CPU-s 3.2KiB/CPU-s 0.0 0.017802 13.61MiB/CPU-s 264.64KiB/CPU-s 3.41KiB/CPU-s 0.0 0.018981 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -3.86KiB/CPU-s -0.03 58.08% 13.62MiB/CPU-s 248.68KiB/CPU-s 3.21KiB/CPU-s 0.0 0.017832 13.61MiB/CPU-s 275.02KiB/CPU-s 3.55KiB/CPU-s 0.0 0.019726 False False
datadog_agent_remap_datadog_logs ingress throughput -15.81KiB/CPU-s -0.05 45.82% 32.77MiB/CPU-s 1.5MiB/CPU-s 19.84KiB/CPU-s 0.0 0.045822 32.75MiB/CPU-s 1.26MiB/CPU-s 16.68KiB/CPU-s 0.0 0.03853 False False
http_to_http_json ingress throughput -18.17KiB/CPU-s -0.13 99.94% 13.59MiB/CPU-s 276.2KiB/CPU-s 3.56KiB/CPU-s 0.0 0.019843 13.57MiB/CPU-s 300.81KiB/CPU-s 3.88KiB/CPU-s 0.0 0.021639 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -81.9KiB/CPU-s -0.26 98.20% 31.09MiB/CPU-s 1.74MiB/CPU-s 23.03KiB/CPU-s 0.0 0.056048 31.01MiB/CPU-s 1.96MiB/CPU-s 25.86KiB/CPU-s 0.0 0.063086 False False
otlp_http_to_blackhole ingress throughput -6.71KiB/CPU-s -0.42 99.93% 1.56MiB/CPU-s 111.39KiB/CPU-s 1.44KiB/CPU-s 0.0 0.069583 1.56MiB/CPU-s 105.22KiB/CPU-s 1.36KiB/CPU-s 0.0 0.066005 False False
syslog_humio_logs ingress throughput -69.41KiB/CPU-s -0.74 100.00% 9.13MiB/CPU-s 282.52KiB/CPU-s 3.65KiB/CPU-s 0.0 0.030222 9.06MiB/CPU-s 292.84KiB/CPU-s 3.78KiB/CPU-s 0.0 0.031561 False False
socket_to_socket_blackhole ingress throughput -101.79KiB/CPU-s -0.74 100.00% 13.51MiB/CPU-s 402.65KiB/CPU-s 5.2KiB/CPU-s 0.0 0.029107 13.41MiB/CPU-s 385.41KiB/CPU-s 4.97KiB/CPU-s 0.0 0.028067 False False
syslog_loki ingress throughput -106.35KiB/CPU-s -1.21 100.00% 8.56MiB/CPU-s 218.82KiB/CPU-s 2.82KiB/CPU-s 0.0 0.024964 8.46MiB/CPU-s 287.98KiB/CPU-s 3.72KiB/CPU-s 0.0 0.033258 False False
datadog_agent_remap_blackhole_acks ingress throughput -511.92KiB/CPU-s -1.62 100.00% 30.89MiB/CPU-s 951.08KiB/CPU-s 12.28KiB/CPU-s 0.0 0.030066 30.39MiB/CPU-s 1.54MiB/CPU-s 20.42KiB/CPU-s 0.0 0.050817 False False
file_to_blackhole egress throughput -129.36KiB/CPU-s -1.68 47.00% 7.54MiB/CPU-s 4.02MiB/CPU-s 143.49KiB/CPU-s 0.0 0.53246 7.41MiB/CPU-s 4.09MiB/CPU-s 147.75KiB/CPU-s 0.0 0.551803 True True
syslog_log2metric_splunk_hec_metrics ingress throughput -331.78KiB/CPU-s -3.54 100.00% 9.16MiB/CPU-s 310.67KiB/CPU-s 4.01KiB/CPU-s 0.0 0.033127 8.83MiB/CPU-s 319.93KiB/CPU-s 4.13KiB/CPU-s 0.0 0.035366 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -241.95KiB/CPU-s -6.55 100.00% 3.61MiB/CPU-s 385.38KiB/CPU-s 4.97KiB/CPU-s 0.0 0.10434 3.37MiB/CPU-s 400.65KiB/CPU-s 5.17KiB/CPU-s 0.0 0.11608 True True

@neuronull neuronull dismissed their stale review April 19, 2023 18:07

changes made

Copy link
Contributor

@neuronull neuronull left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really like the refactor for using common network code. At a high level this makes sense to me. Some of the details are fuzzy and as we discussed offline this could benefit from some thorough e2e testing / even adding integration tests for this sink at some point.

I have a few comments but nothing blocking.

Cargo.toml Outdated Show resolved Hide resolved
@@ -0,0 +1,52 @@
//! Networking-related helper functions.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a curiosity not an issue - I noticed this is directly in src/ and that we have some other files in there that could conceivably be placed in something like a "utils" folder or something similar. Just wondering if that has ever been brought up. On second look we have a src/common that might have a similar goal.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, this could/should actually live in vector-core.

Ironically, vector-core already has a nearly identical file in there doing almost the exact same thing, but when I went to convert it all over, it felt like a lot of toil/change on top of an already large PR, and I felt like it would be an easy lay-up PR to follow up with.

src/sinks/statsd/encoder.rs Outdated Show resolved Hide resolved
Comment on lines +125 to +144
async fn build(&self, _cx: SinkContext) -> crate::Result<(VectorSink, Healthcheck)> {
let batcher_settings = self.batch.into_batcher_settings()?;

let socket_mode = self.mode.as_socket_mode();
let request_builder =
StatsdRequestBuilder::new(self.default_namespace.clone(), socket_mode)?;
let protocol = Protocol::from(socket_mode.as_str());

let connector = self.mode.as_connector();
let service = connector.service();
let healthcheck = connector.healthcheck();

let sink = StatsdSink::new(
StatsdService::from_transport(service),
batcher_settings,
request_builder,
protocol,
);
Ok((VectorSink::from_event_streamsink(sink), healthcheck))
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so clean 🤤

src/sinks/statsd/encoder.rs Outdated Show resolved Hide resolved
Comment on lines +9 to +11
fn normalize(&mut self, state: &mut MetricSet, metric: Metric) -> Option<Metric> {
// We primarily care about making sure that metrics are incremental, but for gauges, we can
// handle both incremental and absolute versions during encoding.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't find this behavior existing in the current implementation, so mainly just want to ask and perhaps have the comment updated with the result of: why we care about this? Is it a requirement for the downstream StatsD aggregator?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, the StatsD protocol calls out that counters/histograms are incremental: https://github.com/b/statsd_spec#counters.

Technically, that's through deduction: it states that counters are increments/decrements which update a single gauge on the "server" (aka statsd itself), and for histograms, same thing: you can only send one value with a histogram, but histograms have multiple values in them, again implying that they're updated incrementally.

We pass through gauges as they are because if they're absolute, you can send them in the "overwrite the gauge value" mode, and if they're incremental, then you can send them in a way that just updates them at the "server".

But for everything other than gauges, everything is meant to be a single data point, that is incrementally aggregated by the "server."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As the current implementation stands, it doesn't do any of this, but I think we mostly get by because most metrics sources will spit out incremental counters and so on.

Ironically, you can even see this in the test_encode_absolute_counter test, where it encodes an absolute counter, and has a code comment that the statsd parser will treat it as an incremental metric... so the current statsd sink behavior is demonstrably wrong, but again, most counters are incremental so it just happens to generally work out fine and dandy.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@spencergilbert Just as a follow-up: does my explanation not make sense to you?

src/sinks/statsd/request_builder.rs Outdated Show resolved Hide resolved
/// Converts a stream of infallible results by unwrapping them.
///
/// For a stream of `Result<T, Infallible>` items, this turns it into a stream of `T` items.
fn unwrap_infallible<T>(self) -> UnwrapInfallible<Self>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💭 is this something that might be able to be leveraged in existing sinks?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably? Can't immediately think of anything off the top of my head, but I think that's just a lack of touching any other sinks recently.

src/sinks/util/service/net/udp.rs Show resolved Hide resolved
Copy link
Contributor

@spencergilbert spencergilbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small addition on Kyle's review

src/internal_events/unix.rs Show resolved Hide resolved
src/sinks/util/service/net/tcp.rs Outdated Show resolved Hide resolved
}

async fn connect_backoff(&self) -> NetworkConnection {
// TODO: Make this configurable.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assuming this is fine to leave as TODO for now given it isn't configurable today?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was the thought, yes.

default_namespace: Option<String>,
}

impl StatsdEncoder {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I expect one day we'll still want to move this into lib/codecs proper, yeah?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably?

I'm not sure we'd want to throw it into the main encoding/decoding enums -- like, is there really value in letting arbitrary sinks emit statsd-encoded metrics? etc -- but it could certainly live in codecs for the purpose of being isolated, better tested, and colocated with other similar code.

buf,
&name,
tags.as_deref(),
format!("{:+}", value),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TIL about + in formatting.

@jszwedko jszwedko added the meta: awaiting author Pull requests that are awaiting their author. label Apr 28, 2023
@github-actions github-actions bot removed the meta: awaiting author Pull requests that are awaiting their author. label May 24, 2023
@tobz
Copy link
Contributor Author

tobz commented May 24, 2023

FWIW, I ended up passing on trying to add an integration test here, for a few reasons:

  • we already check that the encoded metrics are syntactically valid by running them through our StatsD parser used on the source side
  • there's nothing to really integration test against

While we could certainly spit out the metrics to OG StatsD itself, or to the Datadog Agent, we'd be bending over backwards (IMO) trying to get them back out to meaningfully assert that they were sent through as expected. This is even harder because the protocol has no mechanicam to indicate errors: either you send the right encoded metrics and the other side can parse them and process them.... or not.

With all of that, it felt pointless to add an integration test that would ultimately boil down to reimplementing the logic of parsing StatsD metrics after writing out the raw socket data to a string, or some such approach.

@datadog-vectordotdev
Copy link

datadog-vectordotdev bot commented May 24, 2023

Datadog Report

Branch report: tobz/rewrite-statsd-sink
Commit report: b14282c

vector: 0 Failed, 0 New Flaky, 2098 Passed, 0 Skipped, 20m 6.09s Wall Time

@tobz tobz added this pull request to the merge queue May 25, 2023
@github-actions
Copy link

Regression Detector Results

Run ID: 64dc575a-df06-49bd-aca4-8810b0670004
Baseline: b28d915
Comparison: 2a76cac
Total vector CPUs: 7

Explanation

A regression test is an integrated performance test for vector in a repeatable rig, with varying configuration for vector. What follows is a statistical summary of a brief vector run for each configuration across SHAs given above. The goal of these tests are to determine quickly if vector performance is changed and to what degree by a pull request.

Because a target's optimization goal performance in each experiment will vary somewhat each time it is run, we can only estimate mean differences in optimization goal relative to the baseline target. We express these differences as a percentage change relative to the baseline target, denoted "Δ mean %". These estimates are made to a precision that balances accuracy and cost control. We represent this precision as a 90.00% confidence interval denoted "Δ mean % CI": there is a 90.00% chance that the true value of "Δ mean %" is in that interval.

We decide whether a change in performance is a "regression" -- a change worth investigating further -- if both of the following two criteria are true:

  1. The estimated |Δ mean %| ≥ 5.00%. This criterion intends to answer the question "Does the estimated change in mean optimization goal performance have a meaningful impact on your customers?". We assume that when |Δ mean %| < 5.00%, the impact on your customers is not meaningful. We also assume that a performance change in optimization goal is worth investigating whether it is an increase or decrease, so long as the magnitude of the change is sufficiently large.

  2. Zero is not in the 90.00% confidence interval "Δ mean % CI" about "Δ mean %". This statement is equivalent to saying that there is at least a 90.00% chance that the mean difference in optimization goal is not zero. This criterion intends to answer the question, "Is there a statistically significant difference in mean optimization goal performance?". It also means there is no more than a 10.00% chance this criterion reports a statistically significant difference when the true difference in mean optimization goal is zero -- a "false positive". We assume you are willing to accept a 10.00% chance of inaccurately detecting a change in performance when no true difference exists.

The table below, if present, lists those experiments that have experienced a statistically significant change in mean optimization goal performance between baseline and comparison SHAs with 90.00% confidence OR have been detected as newly erratic. Negative values of "Δ mean %" mean that baseline is faster, whereas positive values of "Δ mean %" mean that comparison is faster. Results that do not exhibit more than a ±5.00% change in their mean optimization goal are discarded. An experiment is erratic if its coefficient of variation is greater than 0.1. The abbreviated table will be omitted if no interesting change is observed.

No interesting changes in experiment optimization goals with confidence ≥ 90.00% and |Δ mean %| ≥ 5.00%.

Fine details of change detection per experiment.
experiment goal Δ mean % Δ mean % CI confidence
syslog_loki ingress throughput +0.66 [+0.59, +0.72] 100.00%
syslog_log2metric_splunk_hec_metrics ingress throughput +0.59 [+0.50, +0.67] 100.00%
splunk_hec_route_s3 ingress throughput +0.39 [+0.26, +0.52] 99.99%
datadog_agent_remap_blackhole ingress throughput +0.35 [+0.27, +0.44] 100.00%
file_to_blackhole ingress throughput +0.05 [+0.00, +0.10] 82.84%
enterprise_http_to_http ingress throughput +0.05 [+0.01, +0.08] 90.50%
http_to_http_noack ingress throughput +0.04 [-0.02, +0.10] 64.59%
splunk_hec_to_splunk_hec_logs_acks ingress throughput +0.00 [-0.06, +0.07] 6.38%
fluent_elasticsearch ingress throughput +0.00 [-0.00, +0.00] 4.45%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.01 [-0.05, +0.04] 15.03%
splunk_hec_indexer_ack_blackhole ingress throughput -0.01 [-0.06, +0.03] 34.54%
http_to_http_acks ingress throughput -0.08 [-1.30, +1.13] 7.05%
socket_to_socket_blackhole ingress throughput -0.22 [-0.29, -0.16] 100.00%
syslog_log2metric_humio_metrics ingress throughput -0.22 [-0.32, -0.12] 99.59%
http_to_http_json ingress throughput -0.26 [-0.33, -0.20] 100.00%
syslog_regex_logs2metric_ddmetrics ingress throughput -0.29 [-0.54, -0.05] 87.00%
syslog_splunk_hec_logs ingress throughput -0.52 [-0.59, -0.45] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput -0.98 [-1.08, -0.89] 100.00%
otlp_http_to_blackhole ingress throughput -1.40 [-1.55, -1.26] 100.00%
http_text_to_http_json ingress throughput -1.80 [-1.87, -1.74] 100.00%
otlp_grpc_to_blackhole ingress throughput -1.93 [-2.05, -1.82] 100.00%
datadog_agent_remap_blackhole_acks ingress throughput -1.94 [-2.03, -1.84] 100.00%
datadog_agent_remap_datadog_logs ingress throughput -2.59 [-2.71, -2.47] 100.00%
syslog_humio_logs ingress throughput -2.78 [-2.83, -2.72] 100.00%

Merged via the queue into master with commit 2a76cac May 26, 2023
77 checks passed
@tobz tobz deleted the tobz/rewrite-statsd-sink branch May 26, 2023 00:51
aholmberg pushed a commit to aholmberg/vector that referenced this pull request Feb 14, 2024
# [1.30.0](answerbook/vector@v1.29.2...v1.30.0) (2023-12-19)

### Bug Fixes

* `aws_ec2_metadata` transform when using log namespacing (vectordotdev#17819) [4786743](answerbook/vector@4786743) - GitHub
* **auth**: Vector does not put the Proxy-Authorization header on the wire (vectordotdev#17353) (vectordotdev#17363) [6705bdd](answerbook/vector@6705bdd) - GitHub
* **buffers**: deadlock when seeking after entire write fails to be flushed (vectordotdev#17657) [37a662a](answerbook/vector@37a662a) - GitHub
* **ci**: add missing env var (vectordotdev#17872) [4f67695](answerbook/vector@4f67695) - Jesse Szwedko
* **ci**: add missing logic to mark required checks failed (vectordotdev#17543) [3b87e00](answerbook/vector@3b87e00) - GitHub
* **ci**: change command to find baseline sha from issue comment trigger (vectordotdev#17622) [5791083](answerbook/vector@5791083) - GitHub
* **ci**: checkout a greater depth in regression workflow (vectordotdev#17604) [baa04e5](answerbook/vector@baa04e5) - GitHub
* **ci**: post failed status to PR and isolate branch checkout on comment trigger (vectordotdev#17544) [e2c0255](answerbook/vector@e2c0255) - GitHub
* **ci**: reg workflow alt approach to getting baseline sha (vectordotdev#17645) [f1e1ae3](answerbook/vector@f1e1ae3) - GitHub
* **ci**: use correct ID for Triage in Gardener Board (vectordotdev#17647) [2638cca](answerbook/vector@2638cca) - GitHub
* **ci**: use correct secret for gardener board comment (vectordotdev#17605) [9395eba](answerbook/vector@9395eba) - GitHub
* **config**: Fix preloading log_schema (vectordotdev#17759) [659e1e6](answerbook/vector@659e1e6) - GitHub
* **databend sink**: use get for page request (vectordotdev#17373) [c7d7cf8](answerbook/vector@c7d7cf8) - GitHub
* **datadog_agent source**: remove duplicate internal metrics emission (vectordotdev#17720) [48ec2e8](answerbook/vector@48ec2e8) - GitHub
* **distribution**: Fix architecture detection for ARMv7 (vectordotdev#17484) [78fb469](answerbook/vector@78fb469) - GitHub
* **docs**: fix copy-paste issue in component spec (vectordotdev#17616) [b400acc](answerbook/vector@b400acc) - GitHub
* **file source**: Fix tailing problem when source number greater than 512 (vectordotdev#17717) [23a3e0e](answerbook/vector@23a3e0e) - GitHub
* **fluent source**: fix ack message format (vectordotdev#17407) [d194992](answerbook/vector@d194992) - GitHub
* **http_client source**: adapt int test to use breaking change of dep (vectordotdev#17583) [d7df520](answerbook/vector@d7df520) - GitHub
* **http_client source**: remove utf8 lossy conversion (vectordotdev#17655) [59e2cbf](answerbook/vector@59e2cbf) - GitHub
* **install.sh**: Correctly `shift` all parsed arguments (vectordotdev#17684) [f883575](answerbook/vector@f883575) - GitHub
* **loki sink, observability**: Drop non-fatal template render errors to warnings (vectordotdev#17746) [4ebc3e1](answerbook/vector@4ebc3e1) - GitHub
* **loki sink**: use json size of unencoded event (vectordotdev#17572) [25e7699](answerbook/vector@25e7699) - GitHub
* **observability**: correct emitted metrics (vectordotdev#17562) [7a4f1f7](answerbook/vector@7a4f1f7) - GitHub
* **observability**: issues with event_cache PR (vectordotdev#17768) [fdf02d9](answerbook/vector@fdf02d9) - GitHub
* remap behavior for root types when using the `Vector` namespace (vectordotdev#17807) [c19938c](answerbook/vector@c19938c) - GitHub
* **sinks**: Add missing component span for sink building (vectordotdev#17765) [219883e](answerbook/vector@219883e) - GitHub

### Chores

* Add docker config to dependabot (vectordotdev#17696) [079d895](answerbook/vector@079d895) - GitHub
* add sink prelude (vectordotdev#17595) [da939ca](answerbook/vector@da939ca) - GitHub
* Add submodules to all checkouts (vectordotdev#17770) [7196622](answerbook/vector@7196622) - GitHub
* **administration**: add domain label for vdev (vectordotdev#17748) [c35ebd1](answerbook/vector@c35ebd1) - GitHub
* **aws_s3 sink**: Update metadata to match the editorial review for the schema. (vectordotdev#17475) [c1262cd](answerbook/vector@c1262cd) - GitHub
* Bump version to 0.31.0 (vectordotdev#17466) [78bbfbc](answerbook/vector@78bbfbc) - GitHub
* **ci**: Add apt retries to cross builds (vectordotdev#17683) [ab1169b](answerbook/vector@ab1169b) - GitHub
* **ci**: Add schedule to component features workflow conditional check (vectordotdev#17816) [708b7f6](answerbook/vector@708b7f6) - GitHub
* **ci**: Bump aws-actions/configure-aws-credentials from 2.0.0 to 2.1.0 (vectordotdev#17565) [8a741d5](answerbook/vector@8a741d5) - GitHub
* **ci**: Bump aws-actions/configure-aws-credentials from 2.1.0 to 2.2.0 (vectordotdev#17697) [12bc4a7](answerbook/vector@12bc4a7) - GitHub
* **ci**: Bump docker/build-push-action from 4.0.0 to 4.1.0 (vectordotdev#17656) [cb9a3a5](answerbook/vector@cb9a3a5) - GitHub
* **ci**: Bump docker/build-push-action from 4.1.0 to 4.1.1 (vectordotdev#17687) [bce5e65](answerbook/vector@bce5e65) - GitHub
* **ci**: Bump docker/metadata-action from 4.4.0 to 4.5.0 (vectordotdev#17624) [a54a12f](answerbook/vector@a54a12f) - GitHub
* **ci**: Bump docker/metadata-action from 4.5.0 to 4.6.0 (vectordotdev#17686) [71273df](answerbook/vector@71273df) - GitHub
* **ci**: Bump docker/setup-buildx-action from 2.5.0 to 2.6.0 (vectordotdev#17625) [15bc42a](answerbook/vector@15bc42a) - GitHub
* **ci**: Bump docker/setup-buildx-action from 2.6.0 to 2.7.0 (vectordotdev#17685) [8006987](answerbook/vector@8006987) - GitHub
* **ci**: Bump docker/setup-buildx-action from 2.7.0 to 2.8.0 (vectordotdev#17786) [dbdff9e](answerbook/vector@dbdff9e) - GitHub
* **ci**: Bump docker/setup-qemu-action from 2.1.0 to 2.2.0 (vectordotdev#17623) [3005141](answerbook/vector@3005141) - GitHub
* **ci**: bump myrotvorets/set-commit-status-action from 1.1.6 to 1.1.7 (vectordotdev#17460) [bca45eb](answerbook/vector@bca45eb) - GitHub
* **ci**: Bump up OSX runners for release builds (vectordotdev#17823) [fe730ad](answerbook/vector@fe730ad) - GitHub
* **ci**: bump xt0rted/pull-request-comment-branch from 1 to 2 (vectordotdev#17461) [c425006](answerbook/vector@c425006) - GitHub
* **ci**: correctly validate comment author in k8s e2e job (vectordotdev#17818) [b8e3dbe](answerbook/vector@b8e3dbe) - GitHub
* **ci**: Drop VRL license exceptions (vectordotdev#17529) [aa01452](answerbook/vector@aa01452) - GitHub
* **ci**: fix a few logic bugs and more strict comment parsing (vectordotdev#17502) [bf372fd](answerbook/vector@bf372fd) - GitHub
* **ci**: fix comment author validation (vectordotdev#17794) [75ae967](answerbook/vector@75ae967) - GitHub
* **ci**: fix failure notify job conditional in publish workflow (vectordotdev#17468) [3699842](answerbook/vector@3699842) - GitHub
* **ci**: fix gardener issues comment workflow (vectordotdev#17825) [47c3da1](answerbook/vector@47c3da1) - GitHub
* **ci**: fix team membership action (vectordotdev#17791) [13c3c78](answerbook/vector@13c3c78) - GitHub
* **ci**: int test yaml file detection (vectordotdev#17590) [fa8a553](answerbook/vector@fa8a553) - GitHub
* **ci**: minor fixes to workflows post merge queue enabling  (vectordotdev#17462) [9f6f6ec](answerbook/vector@9f6f6ec) - GitHub
* **ci**: move component features check out of merge queue (vectordotdev#17773) [e6e776d](answerbook/vector@e6e776d) - GitHub
* **ci**: Move most CI checks to merge queue (vectordotdev#17340) [060399a](answerbook/vector@060399a) - GitHub
* **ci**: reduce runner sizing to 4 core and free tier (vectordotdev#17785) [53a575f](answerbook/vector@53a575f) - GitHub
* **ci**: remove /ci-run-install comment trigger (vectordotdev#17803) [a3770d8](answerbook/vector@a3770d8) - GitHub
* **ci**: Remove remaining Discord notification (vectordotdev#17805) [ed59f37](answerbook/vector@ed59f37) - GitHub
* **ci**: Remove upload of config schema (vectordotdev#17740) [ff6a1b4](answerbook/vector@ff6a1b4) - GitHub
* **ci**: Retry `make check-component-docs` check (vectordotdev#17718) [e8e7e04](answerbook/vector@e8e7e04) - GitHub
* **ci**: revert fix gardener issues comment workflow (vectordotdev#17829) [ee10b8c](answerbook/vector@ee10b8c) - GitHub
* **ci**: Set HOMEBREW_NO_INSTALL_FROM_API in CI (vectordotdev#17867) [00cc584](answerbook/vector@00cc584) - Jesse Szwedko
* **ci**: temporarily disable comment_trigger workflow (vectordotdev#17480) [58d7f3d](answerbook/vector@58d7f3d) - GitHub
* **ci**: temporarily disable flakey `aws_s3` integration test case `handles_errored_status`  (vectordotdev#17455) [8e40b68](answerbook/vector@8e40b68) - GitHub
* **ci**: update comment_trigger note about concurrency groups (vectordotdev#17491) [7699f4d](answerbook/vector@7699f4d) - GitHub
* **ci**: Update publish workflow test Ubuntu versions (vectordotdev#17781) [20d62f1](answerbook/vector@20d62f1) - GitHub
* **clickhouse sink**: refactor to new style (vectordotdev#17723) [77ac63c](answerbook/vector@77ac63c) - GitHub
* **codecs**: consolidate enum types (vectordotdev#17688) [9c45394](answerbook/vector@9c45394) - GitHub
* Codify flag naming including sentinel values (vectordotdev#17569) [134578d](answerbook/vector@134578d) - GitHub
* Codify the use of abbreviate time units in config option names (vectordotdev#17582) [8823561](answerbook/vector@8823561) - GitHub
* **config**: Convert top-level sinks enum to typetag (vectordotdev#17710) [9cd5404](answerbook/vector@9cd5404) - GitHub
* **config**: Make config schema output ordered (vectordotdev#17694) [9606353](answerbook/vector@9606353) - GitHub
* **config**: Update field labels for commonly used sources and transforms  (vectordotdev#17517) [f523f70](answerbook/vector@f523f70) - GitHub
* **config**: Update field labels for sinks (vectordotdev#17560) [e1ddd0e](answerbook/vector@e1ddd0e) - GitHub
* **config**: Update field labels for the rest of the sources and transforms fields (vectordotdev#17564) [6e45477](answerbook/vector@6e45477) - GitHub
* **datadog_archives sink**: Remove this component (vectordotdev#17749) [53f8bff](answerbook/vector@53f8bff) - GitHub
* **datadog_metrics sink**: incrementally encode sketches (vectordotdev#17764) [3f6df61](answerbook/vector@3f6df61) - GitHub
* **datadog_traces sink**: Add additional warning around APM stats for `peer.service` (vectordotdev#17733) [9a899c5](answerbook/vector@9a899c5) - GitHub
* **deps, releasing**: Update to Alpine 3.18 (vectordotdev#17695) [2263756](answerbook/vector@2263756) - GitHub
* **deps**: Bump async-graphql from 5.0.8 to 5.0.9 (vectordotdev#17486) [077a294](answerbook/vector@077a294) - GitHub
* **deps**: Bump async-graphql from 5.0.9 to 5.0.10 (vectordotdev#17619) [2931542](answerbook/vector@2931542) - GitHub
* **deps**: Bump async-graphql-warp from 5.0.8 to 5.0.9 (vectordotdev#17489) [ac81fc1](answerbook/vector@ac81fc1) - GitHub
* **deps**: Bump async-graphql-warp from 5.0.9 to 5.0.10 (vectordotdev#17642) [b3885f6](answerbook/vector@b3885f6) - GitHub
* **deps**: bump aws-sigv4 from 0.55.1 to 0.55.3 (vectordotdev#17481) [2ad5b47](answerbook/vector@2ad5b47) - GitHub
* **deps**: bump base64 from 0.21.0 to 0.21.1 (vectordotdev#17451) [95cbba9](answerbook/vector@95cbba9) - GitHub
* **deps**: Bump base64 from 0.21.1 to 0.21.2 (vectordotdev#17488) [f261781](answerbook/vector@f261781) - GitHub
* **deps**: bump bstr from 1.4.0 to 1.5.0 (vectordotdev#17453) [7554d9c](answerbook/vector@7554d9c) - GitHub
* **deps**: Bump cached from 0.43.0 to 0.44.0 (vectordotdev#17599) [7a55210](answerbook/vector@7a55210) - GitHub
* **deps**: Bump chrono to 0.4.26 (vectordotdev#17537) [0dfa09c](answerbook/vector@0dfa09c) - GitHub
* **deps**: Bump chrono-tz from 0.8.2 to 0.8.3 (vectordotdev#17789) [f79947c](answerbook/vector@f79947c) - GitHub
* **deps**: bump clap_complete from 4.2.3 to 4.3.0 (vectordotdev#17447) [05bf262](answerbook/vector@05bf262) - GitHub
* **deps**: Bump clap_complete from 4.3.0 to 4.3.1 (vectordotdev#17586) [8549809](answerbook/vector@8549809) - GitHub
* **deps**: bump criterion from 0.4.0 to 0.5.0 (vectordotdev#17477) [84f0ada](answerbook/vector@84f0ada) - GitHub
* **deps**: Bump criterion from 0.5.0 to 0.5.1 (vectordotdev#17500) [da7bc95](answerbook/vector@da7bc95) - GitHub
* **deps**: Bump crossbeam-utils from 0.8.15 to 0.8.16 (vectordotdev#17674) [714ccf8](answerbook/vector@714ccf8) - GitHub
* **deps**: Bump csv from 1.2.1 to 1.2.2 (vectordotdev#17555) [bcc5b6c](answerbook/vector@bcc5b6c) - GitHub
* **deps**: bump data-encoding from 2.3.3 to 2.4.0 (vectordotdev#17452) [9aaf864](answerbook/vector@9aaf864) - GitHub
* **deps**: Bump getrandom from 0.2.9 to 0.2.10 (vectordotdev#17613) [bd880f5](answerbook/vector@bd880f5) - GitHub
* **deps**: Bump gloo-utils from 0.1.6 to 0.1.7 (vectordotdev#17707) [53e1785](answerbook/vector@53e1785) - GitHub
* **deps**: Bump graphql_client from 0.12.0 to 0.13.0 (vectordotdev#17541) [ecb707a](answerbook/vector@ecb707a) - GitHub
* **deps**: Bump h2 from 0.3.19 to 0.3.20 (vectordotdev#17767) [ac3bc72](answerbook/vector@ac3bc72) - GitHub
* **deps**: Bump hashbrown from 0.13.2 to 0.14.0 (vectordotdev#17609) [154e393](answerbook/vector@154e393) - GitHub
* **deps**: Bump hyper from 0.14.26 to 0.14.27 (vectordotdev#17766) [a2a3609](answerbook/vector@a2a3609) - GitHub
* **deps**: Bump indexmap from 1.9.3 to 2.0.0 (vectordotdev#17755) [248ccb8](answerbook/vector@248ccb8) - GitHub
* **deps**: Bump indicatif from 0.17.3 to 0.17.4 (vectordotdev#17532) [1565985](answerbook/vector@1565985) - GitHub
* **deps**: Bump indicatif from 0.17.4 to 0.17.5 (vectordotdev#17597) [a164952](answerbook/vector@a164952) - GitHub
* **deps**: Bump infer from 0.13.0 to 0.14.0 (vectordotdev#17737) [326ad08](answerbook/vector@326ad08) - GitHub
* **deps**: Bump itertools from 0.10.5 to 0.11.0 (vectordotdev#17736) [6e1878b](answerbook/vector@6e1878b) - GitHub
* **deps**: Bump lalrpop to 0.19.12 (vectordotdev#17457) [1f54415](answerbook/vector@1f54415) - GitHub
* **deps**: bump lapin from 2.1.1 to 2.1.2 (vectordotdev#17439) [a8b7899](answerbook/vector@a8b7899) - GitHub
* **deps**: bump lapin from 2.1.2 to 2.2.0 (vectordotdev#17443) [b639422](answerbook/vector@b639422) - GitHub
* **deps**: bump lapin from 2.2.0 to 2.2.1 (vectordotdev#17448) [618379a](answerbook/vector@618379a) - GitHub
* **deps**: Bump libc from 0.2.144 to 0.2.146 (vectordotdev#17615) [10cfd0a](answerbook/vector@10cfd0a) - GitHub
* **deps**: Bump libc from 0.2.146 to 0.2.147 (vectordotdev#17753) [1a75ec6](answerbook/vector@1a75ec6) - GitHub
* **deps**: Bump log from 0.4.17 to 0.4.18 (vectordotdev#17526) [5a2fea1](answerbook/vector@5a2fea1) - GitHub
* **deps**: Bump log from 0.4.18 to 0.4.19 (vectordotdev#17662) [e1b3357](answerbook/vector@e1b3357) - GitHub
* **deps**: Bump lru from 0.10.0 to 0.10.1 (vectordotdev#17810) [96e68f7](answerbook/vector@96e68f7) - GitHub
* **deps**: bump memmap2 from 0.6.1 to 0.6.2 (vectordotdev#17482) [79f7dfb](answerbook/vector@79f7dfb) - GitHub
* **deps**: Bump memmap2 from 0.6.2 to 0.7.0 (vectordotdev#17641) [593ea1b](answerbook/vector@593ea1b) - GitHub
* **deps**: Bump memmap2 from 0.7.0 to 0.7.1 (vectordotdev#17752) [4236e32](answerbook/vector@4236e32) - GitHub
* **deps**: Bump mock_instant from 0.3.0 to 0.3.1 (vectordotdev#17574) [1c1beb8](answerbook/vector@1c1beb8) - GitHub
* **deps**: Bump mongodb from 2.5.0 to 2.6.0 (vectordotdev#17726) [c96e3be](answerbook/vector@c96e3be) - GitHub
* **deps**: Bump notify from 6.0.0 to 6.0.1 (vectordotdev#17700) [cd6d154](answerbook/vector@cd6d154) - GitHub
* **deps**: Bump once_cell from 1.17.1 to 1.17.2 (vectordotdev#17531) [8e113ad](answerbook/vector@8e113ad) - GitHub
* **deps**: Bump once_cell from 1.17.2 to 1.18.0 (vectordotdev#17596) [dc6bef2](answerbook/vector@dc6bef2) - GitHub
* **deps**: bump opendal from 0.34.0 to 0.35.0 (vectordotdev#17471) [ebf958b](answerbook/vector@ebf958b) - GitHub
* **deps**: Bump opendal from 0.35.0 to 0.36.0 (vectordotdev#17540) [dbd7151](answerbook/vector@dbd7151) - GitHub
* **deps**: Bump opendal from 0.36.0 to 0.37.0 (vectordotdev#17614) [b5bd85f](answerbook/vector@b5bd85f) - GitHub
* **deps**: Bump opendal from 0.37.0 to 0.38.0 (vectordotdev#17777) [ec4785a](answerbook/vector@ec4785a) - GitHub
* **deps**: Bump openssl from 0.10.52 to 0.10.53 (vectordotdev#17534) [078de66](answerbook/vector@078de66) - GitHub
* **deps**: Bump openssl from 0.10.53 to 0.10.54 (vectordotdev#17573) [4af5e6d](answerbook/vector@4af5e6d) - GitHub
* **deps**: Bump openssl from 0.10.54 to 0.10.55 (vectordotdev#17716) [dd2527d](answerbook/vector@dd2527d) - GitHub
* **deps**: Bump percent-encoding from 2.2.0 to 2.3.0 (vectordotdev#17602) [8e04259](answerbook/vector@8e04259) - GitHub
* **deps**: Bump pin-project from 1.1.0 to 1.1.1 (vectordotdev#17806) [0b32626](answerbook/vector@0b32626) - GitHub
* **deps**: Bump PR limit for Dependabot to 100 (vectordotdev#17459) [85703e7](answerbook/vector@85703e7) - GitHub
* **deps**: bump proc-macro2 from 1.0.57 to 1.0.58 (vectordotdev#17426) [ae656c7](answerbook/vector@ae656c7) - GitHub
* **deps**: Bump proc-macro2 from 1.0.58 to 1.0.59 (vectordotdev#17495) [4ce3278](answerbook/vector@4ce3278) - GitHub
* **deps**: Bump proc-macro2 from 1.0.59 to 1.0.60 (vectordotdev#17643) [f20eb2f](answerbook/vector@f20eb2f) - GitHub
* **deps**: Bump proc-macro2 from 1.0.60 to 1.0.63 (vectordotdev#17757) [63ba2a9](answerbook/vector@63ba2a9) - GitHub
* **deps**: bump proptest from 1.1.0 to 1.2.0 (vectordotdev#17476) [9235fc2](answerbook/vector@9235fc2) - GitHub
* **deps**: bump pulsar from 5.1.1 to 6.0.0 (vectordotdev#17587) [3395cfd](answerbook/vector@3395cfd) - GitHub
* **deps**: Bump pulsar from 6.0.0 to 6.0.1 (vectordotdev#17673) [8d98bb8](answerbook/vector@8d98bb8) - GitHub
* **deps**: Bump quanta from 0.11.0 to 0.11.1 (vectordotdev#17524) [2388c2f](answerbook/vector@2388c2f) - GitHub
* **deps**: Bump quote from 1.0.27 to 1.0.28 (vectordotdev#17496) [cc30746](answerbook/vector@cc30746) - GitHub
* **deps**: Bump quote from 1.0.28 to 1.0.29 (vectordotdev#17798) [cba983e](answerbook/vector@cba983e) - GitHub
* **deps**: Bump quote from 1.0.28 to 1.0.29 (vectordotdev#17815) [bf9828d](answerbook/vector@bf9828d) - GitHub
* **deps**: bump rdkafka from 0.30.0 to 0.31.0 (vectordotdev#17428) [e7fa8d3](answerbook/vector@e7fa8d3) - GitHub
* **deps**: Bump rdkafka from 0.31.0 to 0.32.2 (vectordotdev#17664) [ac68a7b](answerbook/vector@ac68a7b) - GitHub
* **deps**: bump regex from 1.8.1 to 1.8.2 (vectordotdev#17469) [897e45d](answerbook/vector@897e45d) - GitHub
* **deps**: bump regex from 1.8.2 to 1.8.3 (vectordotdev#17494) [5d90cff](answerbook/vector@5d90cff) - GitHub
* **deps**: Bump regex from 1.8.3 to 1.8.4 (vectordotdev#17601) [657758d](answerbook/vector@657758d) - GitHub
* **deps**: bump reqwest from 0.11.17 to 0.11.18 (vectordotdev#17420) [2ed8ec7](answerbook/vector@2ed8ec7) - GitHub
* **deps**: bump security-framework from 2.9.0 to 2.9.1 (vectordotdev#17441) [ac0c7e8](answerbook/vector@ac0c7e8) - GitHub
* **deps**: Bump serde from 1.0.163 to 1.0.164 (vectordotdev#17632) [e35150e](answerbook/vector@e35150e) - GitHub
* **deps**: Bump serde_json from 1.0.96 to 1.0.97 (vectordotdev#17701) [25131ef](answerbook/vector@25131ef) - GitHub
* **deps**: Bump serde_json from 1.0.97 to 1.0.99 (vectordotdev#17754) [e07158c](answerbook/vector@e07158c) - GitHub
* **deps**: Bump serde_yaml from 0.9.21 to 0.9.22 (vectordotdev#17756) [e164b36](answerbook/vector@e164b36) - GitHub
* **deps**: Bump sha2 from 0.10.6 to 0.10.7 (vectordotdev#17698) [d122d32](answerbook/vector@d122d32) - GitHub
* **deps**: Bump tempfile from 3.5.0 to 3.6.0 (vectordotdev#17617) [c55c9ec](answerbook/vector@c55c9ec) - GitHub
* **deps**: Bump tokio from 1.28.1 to 1.28.2 (vectordotdev#17525) [cc703da](answerbook/vector@cc703da) - GitHub
* **deps**: Bump tokio from 1.28.2 to 1.29.0 (vectordotdev#17776) [e26e8b8](answerbook/vector@e26e8b8) - GitHub
* **deps**: bump toml from 0.7.3 to 0.7.4 (vectordotdev#17440) [91ba052](answerbook/vector@91ba052) - GitHub
* **deps**: Bump toml from 0.7.4 to 0.7.5 (vectordotdev#17751) [35c4581](answerbook/vector@35c4581) - GitHub
* **deps**: Bump tower-http from 0.4.0 to 0.4.1 (vectordotdev#17711) [e5e6b96](answerbook/vector@e5e6b96) - GitHub
* **deps**: Bump url from 2.3.1 to 2.4.0 (vectordotdev#17608) [d956092](answerbook/vector@d956092) - GitHub
* **deps**: Bump uuid from 1.3.3 to 1.3.4 (vectordotdev#17682) [c97d619](answerbook/vector@c97d619) - GitHub
* **deps**: Bump uuid from 1.3.4 to 1.4.0 (vectordotdev#17775) [935babf](answerbook/vector@935babf) - GitHub
* **deps**: Bump wasm-bindgen from 0.2.86 to 0.2.87 (vectordotdev#17672) [19c4d4f](answerbook/vector@19c4d4f) - GitHub
* **deps**: Bump wiremock from 0.5.18 to 0.5.19 (vectordotdev#17618) [460bbc7](answerbook/vector@460bbc7) - GitHub
* **deps**: Bump xml-rs from 0.8.4 to 0.8.14 (vectordotdev#17607) [a932489](answerbook/vector@a932489) - GitHub
* **deps**: Drop use of `hashlink` crate (vectordotdev#17678) [41ee394](answerbook/vector@41ee394) - GitHub
* **deps**: Export more common bits for components (vectordotdev#17788) [062224b](answerbook/vector@062224b) - GitHub
* **deps**: Update fs_extra to 1.3.0 (vectordotdev#17458) [299fd6a](answerbook/vector@299fd6a) - GitHub
* **deps**: Upgrade Ruby version to 3.1.4 (vectordotdev#17722) [ddebde9](answerbook/vector@ddebde9) - GitHub
* **deps**: Upgrade rust to 1.70.0 (vectordotdev#17585) [6c48565](answerbook/vector@6c48565) - GitHub
* **dev**: Add @dsmith3197 to CODEOWNERS (vectordotdev#17729) [a08443c](answerbook/vector@a08443c) - GitHub
* **docs**: Add info about Vector Operator to Kubernetes instalation page (vectordotdev#17432) [54d9c99](answerbook/vector@54d9c99) - GitHub
* **docs**: add instructions for regenerating component docs and licenses (vectordotdev#17828) [93ef6c3](answerbook/vector@93ef6c3) - GitHub
* **docs**: Add Log Namespacing docs (vectordotdev#16571) [7d098e4](answerbook/vector@7d098e4) - GitHub
* **docs**: add note about const strings (vectordotdev#17774) [d7bc531](answerbook/vector@d7bc531) - GitHub
* **docs**: Clarify `bytes` framing for streams (vectordotdev#17745) [7d10fc9](answerbook/vector@7d10fc9) - GitHub
* **docs**: Clarify when component received and sent bytes events should be emitted (vectordotdev#17464) [547783d](answerbook/vector@547783d) - GitHub
* **docs**: Move CONTRIBUTING.md to top-level (vectordotdev#17744) [7a0dec1](answerbook/vector@7a0dec1) - GitHub
* Download submodules in the CI checkouts (vectordotdev#17760) [5417a06](answerbook/vector@5417a06) - GitHub
* Dropped error field from StreamClosed Error (vectordotdev#17693) [ee480cd](answerbook/vector@ee480cd) - GitHub
* **enrichment**: avoid importing vector-common in enrichment module (vectordotdev#17653) [45a28f8](answerbook/vector@45a28f8) - GitHub
* **enterprise**: Extend library functionality for secret scanning (vectordotdev#17483) [541bb00](answerbook/vector@541bb00) - GitHub
* **external docs**: fix reference to supported aarch64 architecture (vectordotdev#17553) [247bb80](answerbook/vector@247bb80) - GitHub
* **external docs**: update fluentd link (vectordotdev#17436) [187f142](answerbook/vector@187f142) - GitHub
* Fix publish workflow for older OS images (vectordotdev#17787) [ab39c6a](answerbook/vector@ab39c6a) - GitHub
* **flush on shutdown**: validate s3 sink flushes (vectordotdev#17667) [c21f892](answerbook/vector@c21f892) - GitHub
* **kubernetes_logs source**: Add warning about Windows support (vectordotdev#17762) [a53c7a2](answerbook/vector@a53c7a2) - GitHub
* **kubernetes**: Bump k8s manifests to 0.22.0 (vectordotdev#17467) [f547871](answerbook/vector@f547871) - GitHub
* **observability**: emit `component_sent` events by `source` and `service` (vectordotdev#17549) [dcf7f9a](answerbook/vector@dcf7f9a) - GitHub
* **observability**: ensure `sent_event` and `received_event` metrics are estimated json size (vectordotdev#17465) [3b2a2be](answerbook/vector@3b2a2be) - GitHub
* **observability**: Have `tower_limit` use configured log level (vectordotdev#17715) [08099a8](answerbook/vector@08099a8) - GitHub
* **observability**: remove deprecated internal metrics + massive cleanup to vector top and graphql API (vectordotdev#17516) [98c54ad](answerbook/vector@98c54ad) - GitHub
* **observability**: remove more deprecated internal metrics (vectordotdev#17542) [b0ed167](answerbook/vector@b0ed167) - GitHub
* **observability**: set source fields to mean service (vectordotdev#17470) [670bdea](answerbook/vector@670bdea) - GitHub
* **releasing**: Prepare v0.30.0 release [af2b2af](answerbook/vector@af2b2af) - Jesse Szwedko
* **releasing**: Prepare v0.31.0 release [0f13b22](answerbook/vector@0f13b22) - Jesse Szwedko
* remove custom async sleep impl (vectordotdev#17493) [b28d915](answerbook/vector@b28d915) - GitHub
* Remove links to roadmap (vectordotdev#17554) [349c718](answerbook/vector@349c718) - GitHub
* Revert all submodule introductions to fix CI (vectordotdev#17800) [d8d57e5](answerbook/vector@d8d57e5) - GitHub
* RFC for Data Volume Insights (vectordotdev#17322) [a551f33](answerbook/vector@a551f33) - GitHub
* **sinks**: Drop the custom `SinkContext::default` implementation (vectordotdev#17804) [e66e285](answerbook/vector@e66e285) - GitHub
* **sinks**: mark VectorSink::from_event_sink as deprecated (vectordotdev#17649) [0dc450f](answerbook/vector@0dc450f) - GitHub
* **statsd sink**: refactor `statsd` sink to stream-based style (vectordotdev#16199) [2a76cac](answerbook/vector@2a76cac) - GitHub
* update `vrl` to `0.4.0` (vectordotdev#17378) [426d660](answerbook/vector@426d660) - GitHub
* Update the NOTICE file (vectordotdev#17430) [9a44e6e](answerbook/vector@9a44e6e) - GitHub
* Upgrade aws-smithy and aws-sdk crates (vectordotdev#17731) [6a6b42b](answerbook/vector@6a6b42b) - GitHub
* **website**: Fix upgrade guide dates [80de738](answerbook/vector@80de738) - Jesse Szwedko

### Features

* add metadata support to `set_semantic_meaning` (vectordotdev#17730) [44be378](answerbook/vector@44be378) - GitHub
* **codecs**: add lossy option to `gelf`, `native_json`, and `syslog` deserializers (vectordotdev#17680) [2dfa850](answerbook/vector@2dfa850) - GitHub
* **codecs**: Add lossy option to JSON deserializer (vectordotdev#17628) [bf7d796](answerbook/vector@bf7d796) - GitHub
* **configurable shutdown duration**: make shutdown duration configurable (vectordotdev#17479) [23ed0e3](answerbook/vector@23ed0e3) - GitHub
* **error code when shutdown fails**: set exit flag to non-zero when shutdown times out (vectordotdev#17676) [cc52c0e](answerbook/vector@cc52c0e) - GitHub
* **internal telemetry at shutdown**: close internal sources after external ones (vectordotdev#17741) [812929b](answerbook/vector@812929b) - GitHub
* **journald source**: add journal_namespace option (vectordotdev#17648) [a324a07](answerbook/vector@a324a07) - GitHub
* **kinesis sinks**: implement full retry of partial failures in firehose/streams (vectordotdev#17535) [bebac21](answerbook/vector@bebac21) - GitHub
* **prometheus**: add more compression algorithms to Prometheus Remote Write (vectordotdev#17334) [380d7ad](answerbook/vector@380d7ad) - GitHub
* track runtime schema definitions for log events (vectordotdev#17692) [6eecda5](answerbook/vector@6eecda5) - GitHub

### Miscellaneous

* Merge pull request vectordotdev#371 from answerbook/feature/LOG-18200 [491ea31](answerbook/vector@491ea31) - GitHub [LOG-18200](https://logdna.atlassian.net/browse/LOG-18200)
* Merge pull request vectordotdev#374 from answerbook/dominic/LOG-18535-temp-revert [df87df7](answerbook/vector@df87df7) - GitHub [LOG-18535](https://logdna.atlassian.net/browse/LOG-18535) [LOG-18535](https://logdna.atlassian.net/browse/LOG-18535)
* Revert "Merge pull request vectordotdev#370 from answerbook/dominic/LOG-18535" [73a8b28](answerbook/vector@73a8b28) - dominic-mcallister-logdna [LOG-18535](https://logdna.atlassian.net/browse/LOG-18535)
* Merge branch 'master' into feature/LOG-18200 [fcd21f3](answerbook/vector@fcd21f3) - Darin Spivey [LOG-18200](https://logdna.atlassian.net/browse/LOG-18200)
* Merge tag 'v0.31.0' into upstream-0.31.0 [9443fb1](answerbook/vector@9443fb1) - Darin Spivey
* Update VRL to `0.5.0` (vectordotdev#17793) [671aa79](answerbook/vector@671aa79) - GitHub
* fix `demo_logs` metadata source name (vectordotdev#17689) [83af7ea](answerbook/vector@83af7ea) - GitHub
* enhancement(s3 source) Add minimal support to unwrap an S3-SQS event from an SNS event (vectordotdev#17352) [7a7bc9a](answerbook/vector@7a7bc9a) - GitHub
* Additional notes on proposing new integrations (vectordotdev#17658) [2ad964d](answerbook/vector@2ad964d) - GitHub
* **ci**: reduce billable time of Test Suite (vectordotdev#17714) [bc69255](answerbook/vector@bc69255) - GitHub
* **ci**: refactor logic for int test file path changes detection (vectordotdev#17725) [92a36e0](answerbook/vector@92a36e0) - GitHub
* **compression**: zstd compression support (vectordotdev#17371) [ced219e](answerbook/vector@ced219e) - GitHub
* **dev**:  move blocked/waiting gardener issues to triage on comment (vectordotdev#17588) [6b34868](answerbook/vector@6b34868) - GitHub
* explain how to run tests locally (vectordotdev#17783) [3b67a80](answerbook/vector@3b67a80) - GitHub
* remove aggregator beta warning (vectordotdev#17750) [94e3f15](answerbook/vector@94e3f15) - GitHub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci-condition: integration tests enable Run integration tests on this PR domain: external docs Anything related to Vector's external, public documentation domain: sinks Anything related to the Vector's sinks domain: sources Anything related to the Vector's sources
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants