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

feat(new sink): Add AppSignal sink #16650

Merged
merged 23 commits into from
Apr 5, 2023

Conversation

tombruijn
Copy link
Contributor

@tombruijn tombruijn commented Mar 1, 2023

Add a new sink for the AppSignal.com service. It sends a JSON payload based to the public appsignal-endpoint.net, using the HttpClient.

@tombruijn tombruijn requested a review from a team as a code owner March 1, 2023 14:40
@tombruijn tombruijn requested a review from a team March 1, 2023 14:40
@netlify
Copy link

netlify bot commented Mar 1, 2023

Deploy Preview for vrl-playground ready!

Name Link
🔨 Latest commit 4a72874
🔍 Latest deploy log https://app.netlify.com/sites/vrl-playground/deploys/6421a245454c1f0007c8639c
😎 Deploy Preview https://deploy-preview-16650--vrl-playground.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@netlify
Copy link

netlify bot commented Mar 1, 2023

Deploy Preview for vector-project ready!

Name Link
🔨 Latest commit 4b7b860
🔍 Latest deploy log https://app.netlify.com/sites/vector-project/deploys/642d161c4dce2f0008533801
😎 Deploy Preview https://deploy-preview-16650--vector-project.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@github-actions github-actions bot added domain: external docs Anything related to Vector's external, public documentation domain: sinks Anything related to the Vector's sinks labels Mar 1, 2023
@github-actions
Copy link

github-actions bot commented Mar 1, 2023

Regression Detector Results

Run ID: 7c58511a-a6b1-4adf-afee-929f397b06f2
Baseline: a18bc5f
Comparison: 7d31b3e
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 193.17KiB/CPU-s 0.79 100.00% 23.74MiB/CPU-s 516.19KiB/CPU-s 6.35KiB/CPU-s 0.0 0.021231 23.93MiB/CPU-s 534.35KiB/CPU-s 6.58KiB/CPU-s 0.0 0.021805 False False
otlp_grpc_to_blackhole ingress throughput 3.97KiB/CPU-s 0.38 100.00% 1.03MiB/CPU-s 48.14KiB/CPU-s 606.53B/CPU-s 0.0 0.045523 1.04MiB/CPU-s 51.94KiB/CPU-s 654.48B/CPU-s 0.0 0.048938 False False
syslog_log2metric_splunk_hec_metrics ingress throughput 29.15KiB/CPU-s 0.31 100.00% 9.21MiB/CPU-s 217.37KiB/CPU-s 2.68KiB/CPU-s 0.0 0.023038 9.24MiB/CPU-s 223.87KiB/CPU-s 2.75KiB/CPU-s 0.0 0.023654 False False
syslog_humio_logs ingress throughput 11.96KiB/CPU-s 0.13 99.53% 8.91MiB/CPU-s 264.14KiB/CPU-s 3.25KiB/CPU-s 0.0 0.028933 8.93MiB/CPU-s 220.35KiB/CPU-s 2.71KiB/CPU-s 0.0 0.024104 False False
syslog_loki ingress throughput 7.12KiB/CPU-s 0.08 90.59% 8.7MiB/CPU-s 246.94KiB/CPU-s 3.04KiB/CPU-s 0.0 0.027709 8.71MiB/CPU-s 242.26KiB/CPU-s 2.98KiB/CPU-s 0.0 0.027163 False False
http_to_http_noack ingress throughput 9.36KiB/CPU-s 0.07 88.29% 13.61MiB/CPU-s 387.05KiB/CPU-s 4.76KiB/CPU-s 0.0 0.027778 13.61MiB/CPU-s 293.26KiB/CPU-s 3.61KiB/CPU-s 0.0 0.021033 False False
enterprise_http_to_http ingress throughput 5.74KiB/CPU-s 0.04 88.94% 13.62MiB/CPU-s 248.66KiB/CPU-s 3.06KiB/CPU-s 0.0 0.01783 13.62MiB/CPU-s 153.48KiB/CPU-s 1.89KiB/CPU-s 0.0 0.011 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -261.01B/CPU-s -0.00 3.26% 13.61MiB/CPU-s 359.7KiB/CPU-s 4.42KiB/CPU-s 0.0 0.025801 13.61MiB/CPU-s 356.33KiB/CPU-s 4.38KiB/CPU-s 0.0 0.025559 False False
fluent_elasticsearch ingress throughput 54.29B/CPU-s 0.00 8.02% 45.41MiB/CPU-s 30.2KiB/CPU-s 376.48B/CPU-s 0.0 0.000649 45.41MiB/CPU-s 30.95KiB/CPU-s 385.75B/CPU-s 0.0 0.000665 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -2.26KiB/CPU-s -0.02 37.16% 13.62MiB/CPU-s 260.86KiB/CPU-s 3.21KiB/CPU-s 0.0 0.018708 13.61MiB/CPU-s 276.09KiB/CPU-s 3.4KiB/CPU-s 0.0 0.019803 False False
splunk_hec_indexer_ack_blackhole ingress throughput -2.34KiB/CPU-s -0.02 39.56% 13.62MiB/CPU-s 255.2KiB/CPU-s 3.14KiB/CPU-s 0.0 0.018301 13.61MiB/CPU-s 264.64KiB/CPU-s 3.25KiB/CPU-s 0.0 0.018981 False False
file_to_blackhole egress throughput -7.74KiB/CPU-s -0.12 3.60% 6.25MiB/CPU-s 4.26MiB/CPU-s 118.5KiB/CPU-s 1.552106 0.681137 6.24MiB/CPU-s 4.41MiB/CPU-s 124.15KiB/CPU-s 0.0 0.706482 True False
http_to_http_json ingress throughput -34.91KiB/CPU-s -0.25 100.00% 13.62MiB/CPU-s 231.58KiB/CPU-s 2.85KiB/CPU-s 0.0 0.016609 13.58MiB/CPU-s 277.34KiB/CPU-s 3.41KiB/CPU-s 0.0 0.019941 False False
splunk_hec_route_s3 ingress throughput -35.44KiB/CPU-s -0.30 99.94% 11.56MiB/CPU-s 552.03KiB/CPU-s 6.79KiB/CPU-s 0.0 0.046636 11.52MiB/CPU-s 636.77KiB/CPU-s 7.83KiB/CPU-s 0.0 0.053957 False False
socket_to_socket_blackhole ingress throughput -45.91KiB/CPU-s -0.34 100.00% 13.12MiB/CPU-s 306.74KiB/CPU-s 3.77KiB/CPU-s 0.0 0.022834 13.07MiB/CPU-s 371.78KiB/CPU-s 4.57KiB/CPU-s 0.0 0.02777 False False
otlp_http_to_blackhole ingress throughput -6.27KiB/CPU-s -0.39 99.88% 1.55MiB/CPU-s 112.88KiB/CPU-s 1.39KiB/CPU-s 0.0 0.070967 1.55MiB/CPU-s 109.52KiB/CPU-s 1.35KiB/CPU-s 0.0 0.069123 False False
syslog_splunk_hec_logs ingress throughput -42.43KiB/CPU-s -0.47 100.00% 8.82MiB/CPU-s 237.5KiB/CPU-s 2.92KiB/CPU-s 0.0 0.02628 8.78MiB/CPU-s 254.79KiB/CPU-s 3.13KiB/CPU-s 0.0 0.028325 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -226.65KiB/CPU-s -0.67 100.00% 32.88MiB/CPU-s 995.24KiB/CPU-s 12.25KiB/CPU-s 0.0 0.029553 32.66MiB/CPU-s 1.03MiB/CPU-s 12.94KiB/CPU-s 0.0 0.031448 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -32.32KiB/CPU-s -0.86 100.00% 3.65MiB/CPU-s 381.23KiB/CPU-s 4.69KiB/CPU-s 0.0 0.101933 3.62MiB/CPU-s 378.52KiB/CPU-s 4.66KiB/CPU-s 0.0 0.10209 True False
http_to_http_acks ingress throughput -50.66KiB/CPU-s -0.92 69.73% 5.36MiB/CPU-s 2.76MiB/CPU-s 34.71KiB/CPU-s 0.0 0.513719 5.31MiB/CPU-s 2.76MiB/CPU-s 34.8KiB/CPU-s 0.0 0.519658 True False
datadog_agent_remap_datadog_logs ingress throughput -330.98KiB/CPU-s -0.98 100.00% 33.14MiB/CPU-s 1.09MiB/CPU-s 13.75KiB/CPU-s 0.0 0.032937 32.82MiB/CPU-s 1.16MiB/CPU-s 14.65KiB/CPU-s 0.0 0.035429 False False
datadog_agent_remap_blackhole_acks ingress throughput -310.37KiB/CPU-s -0.99 100.00% 30.71MiB/CPU-s 1.53MiB/CPU-s 19.24KiB/CPU-s 0.0 0.049723 30.41MiB/CPU-s 1.78MiB/CPU-s 22.38KiB/CPU-s 0.0 0.058399 False False
datadog_agent_remap_blackhole ingress throughput -488.14KiB/CPU-s -1.53 100.00% 31.19MiB/CPU-s 1.01MiB/CPU-s 12.76KiB/CPU-s 0.0 0.03248 30.71MiB/CPU-s 1.07MiB/CPU-s 13.44KiB/CPU-s 0.0 0.034739 False False
syslog_log2metric_humio_metrics ingress throughput -117.09KiB/CPU-s -1.88 100.00% 6.1MiB/CPU-s 250.5KiB/CPU-s 3.08KiB/CPU-s 0.0 0.040119 5.98MiB/CPU-s 322.63KiB/CPU-s 3.97KiB/CPU-s 0.0 0.052658 False False

src/sinks/appsignal/sink.rs Outdated Show resolved Hide resolved
src/sinks/appsignal/service.rs Outdated Show resolved Hide resolved
website/cue/reference/services/appsignal.cue Outdated Show resolved Hide resolved
website/cue/reference/services/appsignal.cue Outdated Show resolved Hide resolved
src/sinks/appsignal/tests.rs Outdated Show resolved Hide resolved
src/sinks/appsignal/request_builder.rs Outdated Show resolved Hide resolved
Cargo.toml Outdated Show resolved Hide resolved
@github-actions
Copy link

github-actions bot commented Mar 1, 2023

Regression Detector Results

Run ID: bc0bebf1-a08d-4107-a7cf-2d169cbc27c4
Baseline: a18bc5f
Comparison: 35f5b8d
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
file_to_blackhole egress throughput -1.04MiB/CPU-s -14.58 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
splunk_hec_route_s3 ingress throughput 314.05KiB/CPU-s 2.68 100.00% 11.42MiB/CPU-s 599.73KiB/CPU-s 7.38KiB/CPU-s 0.0 0.051269 11.73MiB/CPU-s 527.83KiB/CPU-s 6.49KiB/CPU-s 0.0 0.043943 False False
syslog_regex_logs2metric_ddmetrics ingress throughput 70.64KiB/CPU-s 2.03 100.00% 3.4MiB/CPU-s 355.11KiB/CPU-s 4.37KiB/CPU-s 0.0 0.101851 3.47MiB/CPU-s 436.46KiB/CPU-s 5.37KiB/CPU-s 0.0 0.1227 True False
syslog_loki ingress throughput 175.02KiB/CPU-s 2.00 100.00% 8.53MiB/CPU-s 352.55KiB/CPU-s 4.34KiB/CPU-s 0.0 0.040354 8.7MiB/CPU-s 348.9KiB/CPU-s 4.29KiB/CPU-s 0.0 0.039152 False False
syslog_splunk_hec_logs ingress throughput 146.3KiB/CPU-s 1.63 100.00% 8.76MiB/CPU-s 267.66KiB/CPU-s 3.29KiB/CPU-s 0.0 0.029831 8.9MiB/CPU-s 269.85KiB/CPU-s 3.32KiB/CPU-s 0.0 0.029592 False False
otlp_grpc_to_blackhole ingress throughput 7.32KiB/CPU-s 0.69 100.00% 1.04MiB/CPU-s 51.69KiB/CPU-s 651.3B/CPU-s 0.0 0.048729 1.04MiB/CPU-s 41.88KiB/CPU-s 527.75B/CPU-s 0.0 0.039206 False False
datadog_agent_remap_datadog_logs ingress throughput 155.0KiB/CPU-s 0.46 100.00% 32.58MiB/CPU-s 1.44MiB/CPU-s 18.12KiB/CPU-s 0.0 0.04413 32.74MiB/CPU-s 1.44MiB/CPU-s 18.15KiB/CPU-s 0.0 0.044014 False False
otlp_http_to_blackhole ingress throughput 5.9KiB/CPU-s 0.38 99.52% 1.53MiB/CPU-s 125.57KiB/CPU-s 1.54KiB/CPU-s 0.0 0.079906 1.54MiB/CPU-s 114.98KiB/CPU-s 1.41KiB/CPU-s 0.0 0.072887 False False
enterprise_http_to_http ingress throughput 11.04KiB/CPU-s 0.08 98.00% 13.61MiB/CPU-s 335.15KiB/CPU-s 4.12KiB/CPU-s 0.0 0.024044 13.62MiB/CPU-s 190.58KiB/CPU-s 2.35KiB/CPU-s 0.0 0.013662 False False
datadog_agent_remap_blackhole_acks ingress throughput 8.99KiB/CPU-s 0.03 23.43% 30.35MiB/CPU-s 1.84MiB/CPU-s 23.22KiB/CPU-s 0.0 0.060713 30.36MiB/CPU-s 1.53MiB/CPU-s 19.26KiB/CPU-s 0.0 0.05033 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -558.75B/CPU-s -0.00 6.96% 13.61MiB/CPU-s 367.61KiB/CPU-s 4.52KiB/CPU-s 0.0 0.026368 13.61MiB/CPU-s 350.7KiB/CPU-s 4.31KiB/CPU-s 0.0 0.025156 False False
splunk_hec_indexer_ack_blackhole ingress throughput -1.09KiB/CPU-s -0.01 19.25% 13.62MiB/CPU-s 255.51KiB/CPU-s 3.14KiB/CPU-s 0.0 0.018324 13.62MiB/CPU-s 258.73KiB/CPU-s 3.18KiB/CPU-s 0.0 0.018556 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -1.73KiB/CPU-s -0.01 29.46% 13.62MiB/CPU-s 259.05KiB/CPU-s 3.19KiB/CPU-s 0.0 0.018577 13.61MiB/CPU-s 267.04KiB/CPU-s 3.28KiB/CPU-s 0.0 0.019153 False False
fluent_elasticsearch ingress throughput -8.2KiB/CPU-s -0.02 81.16% 45.41MiB/CPU-s 29.88KiB/CPU-s 372.38B/CPU-s 0.0 0.000643 45.41MiB/CPU-s 511.75KiB/CPU-s 6.23KiB/CPU-s 0.0 0.011006 False False
http_to_http_noack ingress throughput -3.83KiB/CPU-s -0.03 51.03% 13.62MiB/CPU-s 297.38KiB/CPU-s 3.66KiB/CPU-s 0.0 0.021328 13.61MiB/CPU-s 337.87KiB/CPU-s 4.16KiB/CPU-s 0.0 0.024239 False False
syslog_log2metric_humio_metrics ingress throughput -3.26KiB/CPU-s -0.05 58.63% 6.19MiB/CPU-s 178.63KiB/CPU-s 2.2KiB/CPU-s 0.0 0.02818 6.19MiB/CPU-s 270.22KiB/CPU-s 3.33KiB/CPU-s 0.0 0.042651 False False
http_to_http_json ingress throughput -7.77KiB/CPU-s -0.06 94.70% 13.62MiB/CPU-s 218.28KiB/CPU-s 2.69KiB/CPU-s 0.0 0.015649 13.61MiB/CPU-s 242.88KiB/CPU-s 2.99KiB/CPU-s 0.0 0.017423 False False
syslog_log2metric_splunk_hec_metrics ingress throughput -6.82KiB/CPU-s -0.07 69.57% 9.01MiB/CPU-s 310.01KiB/CPU-s 3.81KiB/CPU-s 0.0 0.033588 9.01MiB/CPU-s 441.43KiB/CPU-s 5.43KiB/CPU-s 0.0 0.047863 False False
syslog_humio_logs ingress throughput -54.02KiB/CPU-s -0.59 100.00% 8.9MiB/CPU-s 204.48KiB/CPU-s 2.52KiB/CPU-s 0.0 0.022432 8.85MiB/CPU-s 352.36KiB/CPU-s 4.33KiB/CPU-s 0.0 0.038884 False False
datadog_agent_remap_blackhole ingress throughput -231.72KiB/CPU-s -0.73 100.00% 30.95MiB/CPU-s 1.11MiB/CPU-s 13.97KiB/CPU-s 0.0 0.035827 30.73MiB/CPU-s 1.03MiB/CPU-s 13.01KiB/CPU-s 0.0 0.033598 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -256.55KiB/CPU-s -0.77 100.00% 32.71MiB/CPU-s 1.18MiB/CPU-s 14.85KiB/CPU-s 0.0 0.036026 32.46MiB/CPU-s 1.34MiB/CPU-s 16.89KiB/CPU-s 0.0 0.041299 False False
http_text_to_http_json ingress throughput -218.76KiB/CPU-s -0.90 100.00% 23.8MiB/CPU-s 477.7KiB/CPU-s 5.88KiB/CPU-s 0.0 0.0196 23.59MiB/CPU-s 662.51KiB/CPU-s 8.15KiB/CPU-s 0.0 0.027429 False False
http_to_http_acks ingress throughput -55.11KiB/CPU-s -1.02 74.71% 5.27MiB/CPU-s 2.71MiB/CPU-s 34.11KiB/CPU-s 0.0 0.513882 5.21MiB/CPU-s 2.7MiB/CPU-s 34.05KiB/CPU-s 0.0 0.518491 True False
socket_to_socket_blackhole ingress throughput -167.76KiB/CPU-s -1.26 100.00% 12.97MiB/CPU-s 379.76KiB/CPU-s 4.67KiB/CPU-s 0.0 0.028596 12.8MiB/CPU-s 476.08KiB/CPU-s 5.86KiB/CPU-s 0.0 0.036308 False False
file_to_blackhole egress throughput -1.04MiB/CPU-s -14.58 100.00% 7.12MiB/CPU-s 3.8MiB/CPU-s 126.43KiB/CPU-s 0.0 0.533375 6.08MiB/CPU-s 4.2MiB/CPU-s 120.01KiB/CPU-s 2.102804 0.690254 True False

@neuronull neuronull self-assigned this Mar 2, 2023
@neuronull neuronull self-requested a review March 2, 2023 17:29
@neuronull
Copy link
Contributor

👋
Hi @tombruijn , thanks for the contribution and taking the time to make notes in the diff.

Before we dive too far into the code review, we'll look at things from a high level. We have a process in the works for evaluating new components, and it's in the process of being documented fully. But when that is in place we'll basically want to have a GH issue created for explaining the need for the feature, the functional gaps in Vector that led to the need for a new component to be made, motivations etc.

Have you considered adding grpc support at the destination, so that the existing vector sink could be leveraged as-is ?

@thijsc
Copy link

thijsc commented Mar 7, 2023

Hi @neuronull, thanks for your reply. I'm Thijs, and I also work at AppSignal. If that process had been in place, we would have created an issue first!

We are very excited about Vector and want to be part of the journey. We love Vectors' goal of making observability vendor independent and want to invest in that wherever possible.

This change will enable our customer base to leverage Vector. It makes it easy to configure Vector to work with our product which will drive adoption. We took care to make this change as small as possible: We use the existing protobuf data structure to take on the maintenance burden of reacting to changes in Vector on our end. In addition, we are more than happy to commit to maintaining the code in this pull request going forward.

Our infrastructure does not support GRPC currently, so using the Vector sink was not an option. Also, it's essential for a level playing field to have a straightforward way to configure AppSignal, just like there is for other supported platforms and vendors.

I hope this helps answer your questions. Let me know if you need additional information or changes made before you approve.

@neuronull
Copy link
Contributor

Hi @thijsc 👋

We are excited about your in interest in being a part of Vector!

In addition, we are more than happy to commit to maintaining the code in this pull request going forward.

Much appreciated and we would definitely take you up on that 😃 , it helps in our decision process.

I'll take another look at this and post any further queries here (if there are any), before proceeding with the approach taken and reviewing the code.

@thijsc
Copy link

thijsc commented Mar 8, 2023

Much appreciated and we would definitely take you up on that 😃 , it helps in our decision process.

We are very happy to do so. We are tracking #9261 and will make sure to update our sink when a second round of refactoring is needed.

@neuronull
Copy link
Contributor

After discussing this with the broader team, we would like to propose an alternative approach: leveraging the http sink.

  • While the current approach is a clever usage of Vector's internal protobuf definition, that is not an API which we necessarily intend to be used outside of Vector. i.e currently we can change that at will, more or less without consequence. This implementation adds an external dependency on that which could result in unintended impacts in the future, which is undesirable.

  • It looks like AppSignal has support for both metrics and logs HTTP endpoints. We have examples of integrations that are essentially wrappers over the http sink with custom encoders, that the new appsignal sink could be modeled after (see logdna and honeycomb). This approach leverages established public APIs and thus the contract between Vector and AppSignal is more clearly defined.

Side note:

  • We are considering adding a statsd codec, which could also potentially be leveraged if that effort is pursued.

Curious to hear your thoughts. Thanks~

@thijsc
Copy link

thijsc commented Mar 10, 2023

We are big fans of protobuf, so getting that posted seemed like a great way to do it to us. I do see your argument that that format is internal.

We will rework this pull to use the HTTP sink and a JSON based format. We might add and document another endpoint on our end so we can combine metrics and logs in one post.

@neuronull
Copy link
Contributor

neuronull commented Mar 10, 2023

Thanks much for your understanding @thijsc.

The next step is we'll take this to our Product team for approval. I will post a comment here when we have a green light from them. The leverage of the http sink and your commitment to support are strong points for the discussion. But it might be a good idea to hold off on the code changes in the interim, just in case.

Thanks~

@neuronull
Copy link
Contributor

One other consideration- as part of the final solution we will want to have the new sink integration tested to assure QA going forward and with the initial implementation.

With the HTTP sink approach, one potential way to do that would be with a stub HTTP server.

Alternatively, the integration test could access the AppSignal service itself and that would be a more robust test.
Doing so would seem to require a live AppSignal account however. Is that something we might be able to coordinate?

@thijsc
Copy link

thijsc commented Mar 13, 2023

We can definitively coordinate an integration test that runs on our production environment. We will start working on some preparations for the HTTP sink, looking forward to the response from the product team!

Add a new sink for the [AppSignal.com](https://www.appsignal.com/)
service. It sends a JSON payload based to the public
appsignal-endpoint.net, using the HttpClient.
@github-actions
Copy link

Regression Detector Results

Run ID: 7393504a-40bd-48e6-a95b-453562986374
Baseline: 5a8b149
Comparison: 8a94e60
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
otlp_http_to_blackhole ingress throughput 23.56KiB/CPU-s 1.52 100.00% 1.51MiB/CPU-s 122.79KiB/CPU-s 1.51KiB/CPU-s 0.0 0.079406 1.53MiB/CPU-s 118.59KiB/CPU-s 1.46KiB/CPU-s 0.0 0.075538 False False
datadog_agent_remap_datadog_logs ingress throughput 223.57KiB/CPU-s 0.68 100.00% 32.31MiB/CPU-s 1.33MiB/CPU-s 16.75KiB/CPU-s 0.0 0.041145 32.53MiB/CPU-s 898.12KiB/CPU-s 11.05KiB/CPU-s 0.0 0.026961 False False
datadog_agent_remap_blackhole_acks ingress throughput 207.84KiB/CPU-s 0.65 100.00% 31.42MiB/CPU-s 1009.46KiB/CPU-s 12.42KiB/CPU-s 0.0 0.031369 31.63MiB/CPU-s 433.63KiB/CPU-s 5.34KiB/CPU-s 0.0 0.013389 False False
splunk_hec_route_s3 ingress throughput 11.69KiB/CPU-s 0.10 74.17% 11.68MiB/CPU-s 645.28KiB/CPU-s 7.94KiB/CPU-s 0.0 0.053953 11.69MiB/CPU-s 538.02KiB/CPU-s 6.62KiB/CPU-s 0.0 0.04494 False False
http_to_http_noack ingress throughput 7.11KiB/CPU-s 0.05 77.97% 13.61MiB/CPU-s 367.17KiB/CPU-s 4.52KiB/CPU-s 0.0 0.026347 13.61MiB/CPU-s 295.28KiB/CPU-s 3.63KiB/CPU-s 0.0 0.021178 False False
syslog_loki ingress throughput 3.3KiB/CPU-s 0.04 50.13% 8.28MiB/CPU-s 334.41KiB/CPU-s 4.11KiB/CPU-s 0.0 0.03943 8.28MiB/CPU-s 213.15KiB/CPU-s 2.62KiB/CPU-s 0.0 0.025123 False False
enterprise_http_to_http ingress throughput 3.79KiB/CPU-s 0.03 67.53% 13.62MiB/CPU-s 248.11KiB/CPU-s 3.05KiB/CPU-s 0.0 0.01779 13.62MiB/CPU-s 190.52KiB/CPU-s 2.35KiB/CPU-s 0.0 0.013657 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput 1.19KiB/CPU-s 0.01 14.45% 13.61MiB/CPU-s 379.99KiB/CPU-s 4.67KiB/CPU-s 0.0 0.027257 13.61MiB/CPU-s 370.89KiB/CPU-s 4.56KiB/CPU-s 0.0 0.026601 False False
http_to_http_json ingress throughput 1.99KiB/CPU-s 0.01 32.62% 13.58MiB/CPU-s 272.46KiB/CPU-s 3.35KiB/CPU-s 0.0 0.019587 13.59MiB/CPU-s 269.89KiB/CPU-s 3.32KiB/CPU-s 0.0 0.019399 False False
splunk_hec_indexer_ack_blackhole ingress throughput 443.16B/CPU-s 0.00 7.50% 13.61MiB/CPU-s 265.24KiB/CPU-s 3.26KiB/CPU-s 0.0 0.019025 13.61MiB/CPU-s 263.66KiB/CPU-s 3.24KiB/CPU-s 0.0 0.018911 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput 143.19B/CPU-s 0.00 2.39% 13.61MiB/CPU-s 270.75KiB/CPU-s 3.33KiB/CPU-s 0.0 0.019419 13.61MiB/CPU-s 266.97KiB/CPU-s 3.28KiB/CPU-s 0.0 0.019148 False False
fluent_elasticsearch ingress throughput -132.11B/CPU-s -0.00 19.57% 45.41MiB/CPU-s 30.34KiB/CPU-s 378.11B/CPU-s 0.0 0.000652 45.41MiB/CPU-s 30.17KiB/CPU-s 376.0B/CPU-s 0.0 0.000649 False False
socket_to_socket_blackhole ingress throughput -24.57KiB/CPU-s -0.18 100.00% 13.13MiB/CPU-s 221.26KiB/CPU-s 2.72KiB/CPU-s 0.0 0.016451 13.11MiB/CPU-s 326.8KiB/CPU-s 4.02KiB/CPU-s 0.0 0.024342 False False
otlp_grpc_to_blackhole ingress throughput -2.21KiB/CPU-s -0.21 99.07% 1.03MiB/CPU-s 50.01KiB/CPU-s 630.17B/CPU-s 0.0 0.047358 1.03MiB/CPU-s 47.68KiB/CPU-s 600.77B/CPU-s 0.0 0.045243 False False
datadog_agent_remap_blackhole ingress throughput -137.15KiB/CPU-s -0.44 100.00% 30.38MiB/CPU-s 1.32MiB/CPU-s 16.64KiB/CPU-s 0.0 0.043482 30.24MiB/CPU-s 855.55KiB/CPU-s 10.53KiB/CPU-s 0.0 0.027624 False False
syslog_log2metric_humio_metrics ingress throughput -37.79KiB/CPU-s -0.62 100.00% 5.93MiB/CPU-s 264.85KiB/CPU-s 3.26KiB/CPU-s 0.0 0.043645 5.89MiB/CPU-s 301.01KiB/CPU-s 3.7KiB/CPU-s 0.0 0.049915 False False
http_to_http_acks ingress throughput -38.33KiB/CPU-s -0.71 56.55% 5.29MiB/CPU-s 2.74MiB/CPU-s 34.47KiB/CPU-s 0.0 0.517221 5.25MiB/CPU-s 2.77MiB/CPU-s 34.88KiB/CPU-s 0.0 0.526988 True False
syslog_humio_logs ingress throughput -116.63KiB/CPU-s -1.29 100.00% 8.8MiB/CPU-s 220.23KiB/CPU-s 2.71KiB/CPU-s 0.0 0.024451 8.68MiB/CPU-s 210.02KiB/CPU-s 2.58KiB/CPU-s 0.0 0.023624 False False
http_text_to_http_json ingress throughput -512.55KiB/CPU-s -2.05 100.00% 24.45MiB/CPU-s 700.51KiB/CPU-s 8.62KiB/CPU-s 0.0 0.027975 23.95MiB/CPU-s 1.07MiB/CPU-s 13.44KiB/CPU-s 0.0 0.044524 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -740.73KiB/CPU-s -2.18 100.00% 33.14MiB/CPU-s 1.0MiB/CPU-s 12.64KiB/CPU-s 0.0 0.030261 32.42MiB/CPU-s 1.55MiB/CPU-s 19.48KiB/CPU-s 0.0 0.04769 False False
syslog_log2metric_splunk_hec_metrics ingress throughput -228.89KiB/CPU-s -2.46 100.00% 9.1MiB/CPU-s 266.57KiB/CPU-s 3.28KiB/CPU-s 0.0 0.028605 8.88MiB/CPU-s 352.54KiB/CPU-s 4.34KiB/CPU-s 0.0 0.038784 False False
syslog_splunk_hec_logs ingress throughput -253.88KiB/CPU-s -2.85 100.00% 8.71MiB/CPU-s 210.25KiB/CPU-s 2.59KiB/CPU-s 0.0 0.023574 8.46MiB/CPU-s 245.54KiB/CPU-s 3.02KiB/CPU-s 0.0 0.028337 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -123.14KiB/CPU-s -3.45 100.00% 3.48MiB/CPU-s 452.73KiB/CPU-s 5.57KiB/CPU-s 0.0 0.127005 3.36MiB/CPU-s 380.12KiB/CPU-s 4.68KiB/CPU-s 0.0 0.110453 True True
file_to_blackhole egress throughput -1.17MiB/CPU-s -16.01 100.00% 7.29MiB/CPU-s 3.79MiB/CPU-s 128.26KiB/CPU-s 0.0 0.519757 6.13MiB/CPU-s 4.43MiB/CPU-s 125.62KiB/CPU-s 0.0 0.722578 True True

@neuronull
Copy link
Contributor

Hey @thijsc,

Product team has approved the new integration. We look forward to seeing the re-design! Let us know if you encounter issues.
If you haven't already, this resource is good to consider, as we'll be looking for these aspects when reviewing the code.

https://github.com/vectordotdev/vector/blob/master/docs/CONTRIBUTING.md#new-sources-sinks-and-transforms

@thijsc
Copy link

thijsc commented Mar 16, 2023

Product team has approved the new integration. We look forward to seeing the re-design! Let us know if you encounter issues.

Very happy to hear that! We've pushed code that uses JSON in the meantime. We will add all bells and whistles including an integration test and will let you know once we think this is ready for a real review.

@github-actions
Copy link

Regression Detector Results

Run ID: 9a59a803-38ce-43d9-8489-bb84af62b712
Baseline: cc1e0ef
Comparison: ab78025
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
syslog_regex_logs2metric_ddmetrics ingress throughput 127.79KiB/CPU-s 3.70 100.00% 3.37MiB/CPU-s 378.49KiB/CPU-s 4.66KiB/CPU-s 0.0 0.109635 3.5MiB/CPU-s 429.13KiB/CPU-s 5.28KiB/CPU-s 0.0 0.119867 True True
file_to_blackhole egress throughput 139.31KiB/CPU-s 2.16 56.69% 6.29MiB/CPU-s 4.16MiB/CPU-s 123.89KiB/CPU-s 4.737733 0.661259 6.42MiB/CPU-s 4.25MiB/CPU-s 127.38KiB/CPU-s 0.0 0.661206 True True
datadog_agent_remap_blackhole ingress throughput 165.29KiB/CPU-s 0.55 100.00% 29.41MiB/CPU-s 1.47MiB/CPU-s 18.47KiB/CPU-s 0.0 0.049851 29.57MiB/CPU-s 1.26MiB/CPU-s 15.86KiB/CPU-s 0.0 0.042552 False False
http_to_http_json ingress throughput 17.14KiB/CPU-s 0.12 99.72% 13.54MiB/CPU-s 344.27KiB/CPU-s 4.24KiB/CPU-s 0.0 0.024821 13.56MiB/CPU-s 314.13KiB/CPU-s 3.86KiB/CPU-s 0.0 0.022621 False False
http_to_http_noack ingress throughput 1.89KiB/CPU-s 0.01 23.85% 13.61MiB/CPU-s 366.52KiB/CPU-s 4.51KiB/CPU-s 0.0 0.026301 13.61MiB/CPU-s 347.92KiB/CPU-s 4.28KiB/CPU-s 0.0 0.024963 False False
enterprise_http_to_http ingress throughput 1.83KiB/CPU-s 0.01 39.57% 13.62MiB/CPU-s 216.3KiB/CPU-s 2.66KiB/CPU-s 0.0 0.015507 13.62MiB/CPU-s 189.49KiB/CPU-s 2.33KiB/CPU-s 0.0 0.013583 False False
splunk_hec_indexer_ack_blackhole ingress throughput -301.45B/CPU-s -0.00 5.28% 13.62MiB/CPU-s 253.64KiB/CPU-s 3.12KiB/CPU-s 0.0 0.01819 13.62MiB/CPU-s 257.15KiB/CPU-s 3.16KiB/CPU-s 0.0 0.018442 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -626.25B/CPU-s -0.00 8.10% 13.61MiB/CPU-s 338.75KiB/CPU-s 4.17KiB/CPU-s 0.0 0.024298 13.61MiB/CPU-s 352.38KiB/CPU-s 4.33KiB/CPU-s 0.0 0.025277 False False
fluent_elasticsearch ingress throughput 14.81B/CPU-s 0.00 2.25% 45.41MiB/CPU-s 29.32KiB/CPU-s 365.52B/CPU-s 0.0 0.000631 45.41MiB/CPU-s 30.33KiB/CPU-s 378.0B/CPU-s 0.0 0.000652 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -2.94KiB/CPU-s -0.02 47.91% 13.62MiB/CPU-s 253.73KiB/CPU-s 3.12KiB/CPU-s 0.0 0.018196 13.61MiB/CPU-s 272.19KiB/CPU-s 3.35KiB/CPU-s 0.0 0.019524 False False
datadog_agent_remap_datadog_logs ingress throughput -12.16KiB/CPU-s -0.04 54.18% 33.78MiB/CPU-s 1.03MiB/CPU-s 12.94KiB/CPU-s 0.0 0.03041 33.76MiB/CPU-s 818.67KiB/CPU-s 10.07KiB/CPU-s 0.0 0.023677 False False
http_text_to_http_json ingress throughput -24.79KiB/CPU-s -0.10 95.77% 24.1MiB/CPU-s 832.32KiB/CPU-s 10.24KiB/CPU-s 0.0 0.033722 24.08MiB/CPU-s 539.66KiB/CPU-s 6.64KiB/CPU-s 0.0 0.021887 False False
splunk_hec_route_s3 ingress throughput -29.63KiB/CPU-s -0.25 98.96% 11.54MiB/CPU-s 707.1KiB/CPU-s 8.7KiB/CPU-s 0.0 0.059838 11.51MiB/CPU-s 619.78KiB/CPU-s 7.63KiB/CPU-s 0.0 0.052581 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -100.15KiB/CPU-s -0.30 100.00% 33.15MiB/CPU-s 1.03MiB/CPU-s 12.97KiB/CPU-s 0.0 0.031039 33.06MiB/CPU-s 1.12MiB/CPU-s 14.17KiB/CPU-s 0.0 0.034024 False False
datadog_agent_remap_blackhole_acks ingress throughput -118.34KiB/CPU-s -0.38 100.00% 30.56MiB/CPU-s 1.47MiB/CPU-s 18.56KiB/CPU-s 0.0 0.048202 30.44MiB/CPU-s 1.56MiB/CPU-s 19.71KiB/CPU-s 0.0 0.051378 False False
socket_to_socket_blackhole ingress throughput -84.53KiB/CPU-s -0.61 100.00% 13.56MiB/CPU-s 248.57KiB/CPU-s 3.06KiB/CPU-s 0.0 0.017903 13.47MiB/CPU-s 213.85KiB/CPU-s 2.63KiB/CPU-s 0.0 0.015497 False False
syslog_loki ingress throughput -59.77KiB/CPU-s -0.70 100.00% 8.3MiB/CPU-s 278.35KiB/CPU-s 3.42KiB/CPU-s 0.0 0.032752 8.24MiB/CPU-s 316.42KiB/CPU-s 3.89KiB/CPU-s 0.0 0.037495 False False
http_to_http_acks ingress throughput -40.23KiB/CPU-s -0.74 58.79% 5.29MiB/CPU-s 2.76MiB/CPU-s 34.79KiB/CPU-s 0.0 0.521878 5.25MiB/CPU-s 2.74MiB/CPU-s 34.57KiB/CPU-s 0.0 0.522425 True False
otlp_grpc_to_blackhole ingress throughput -9.13KiB/CPU-s -0.86 100.00% 1.03MiB/CPU-s 51.71KiB/CPU-s 651.45B/CPU-s 0.0 0.048816 1.03MiB/CPU-s 47.7KiB/CPU-s 600.97B/CPU-s 0.0 0.045418 False False
otlp_http_to_blackhole ingress throughput -18.45KiB/CPU-s -1.14 100.00% 1.58MiB/CPU-s 99.83KiB/CPU-s 1.23KiB/CPU-s 0.0 0.061632 1.56MiB/CPU-s 102.31KiB/CPU-s 1.26KiB/CPU-s 0.0 0.063891 False False
syslog_log2metric_splunk_hec_metrics ingress throughput -119.14KiB/CPU-s -1.30 100.00% 8.98MiB/CPU-s 261.79KiB/CPU-s 3.22KiB/CPU-s 0.0 0.02847 8.86MiB/CPU-s 328.0KiB/CPU-s 4.03KiB/CPU-s 0.0 0.036139 False False
syslog_splunk_hec_logs ingress throughput -115.93KiB/CPU-s -1.30 100.00% 8.74MiB/CPU-s 215.76KiB/CPU-s 2.65KiB/CPU-s 0.0 0.024102 8.63MiB/CPU-s 195.67KiB/CPU-s 2.41KiB/CPU-s 0.0 0.022144 False False
syslog_humio_logs ingress throughput -229.4KiB/CPU-s -2.53 100.00% 8.84MiB/CPU-s 148.37KiB/CPU-s 1.83KiB/CPU-s 0.0 0.016385 8.62MiB/CPU-s 277.52KiB/CPU-s 3.41KiB/CPU-s 0.0 0.031444 False False
syslog_log2metric_humio_metrics ingress throughput -229.76KiB/CPU-s -3.71 100.00% 6.04MiB/CPU-s 255.37KiB/CPU-s 3.14KiB/CPU-s 0.0 0.041278 5.82MiB/CPU-s 309.32KiB/CPU-s 3.81KiB/CPU-s 0.0 0.051927 False False

We auto configure the TLS settings with the defaults. Remove the
documentation option.
This should improve how the docs for this config option are displayed. I
couldn't directly add the String value as the default value, but had to
use a function that returns the default value as per the Serde docs:
https://serde.rs/attr-default.html
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.

I pulled down the branch and ran the integration tests 👍

A couple other pedantic / code hygiene things I noticed.

src/sinks/appsignal/mod.rs Outdated Show resolved Hide resolved
src/sinks/appsignal/mod.rs Outdated Show resolved Hide resolved
src/sinks/appsignal/mod.rs Show resolved Hide resolved
src/sinks/appsignal/mod.rs Outdated Show resolved Hide resolved
- Add documentation for the EventEncoder
- Remove unused `as_error_type` function.
- Make things not public if they should not be.
@github-actions
Copy link

github-actions bot commented Apr 3, 2023

Regression Detector Results

Run ID: 90646833-7415-4c37-b4c5-cffc6daa9b1a
Baseline: 00c0316
Comparison: ffe2831
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
syslog_log2metric_humio_metrics ingress throughput -347.57KiB/CPU-s -5.42 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
http_text_to_http_json ingress throughput 197.28KiB/CPU-s 0.81 100.00% 23.85MiB/CPU-s 537.75KiB/CPU-s 6.62KiB/CPU-s 0.0 0.022013 24.05MiB/CPU-s 563.1KiB/CPU-s 6.93KiB/CPU-s 0.0 0.022866 False False
syslog_log2metric_splunk_hec_metrics ingress throughput 61.47KiB/CPU-s 0.65 100.00% 9.25MiB/CPU-s 381.78KiB/CPU-s 4.7KiB/CPU-s 0.0 0.04032 9.31MiB/CPU-s 323.41KiB/CPU-s 3.98KiB/CPU-s 0.0 0.033935 False False
datadog_agent_remap_datadog_logs ingress throughput 207.4KiB/CPU-s 0.62 100.00% 32.77MiB/CPU-s 923.78KiB/CPU-s 11.37KiB/CPU-s 0.0 0.027525 32.98MiB/CPU-s 905.79KiB/CPU-s 11.15KiB/CPU-s 0.0 0.026823 False False
datadog_agent_remap_blackhole ingress throughput 165.86KiB/CPU-s 0.52 100.00% 31.42MiB/CPU-s 975.3KiB/CPU-s 12.0KiB/CPU-s 0.0 0.030311 31.58MiB/CPU-s 918.68KiB/CPU-s 11.3KiB/CPU-s 0.0 0.028404 False False
http_to_http_acks ingress throughput 17.65KiB/CPU-s 0.33 28.28% 5.22MiB/CPU-s 2.72MiB/CPU-s 34.26KiB/CPU-s 0.0 0.521219 5.23MiB/CPU-s 2.75MiB/CPU-s 34.68KiB/CPU-s 0.0 0.525831 True False
syslog_humio_logs ingress throughput 30.37KiB/CPU-s 0.33 100.00% 8.99MiB/CPU-s 198.37KiB/CPU-s 2.44KiB/CPU-s 0.0 0.021543 9.02MiB/CPU-s 200.73KiB/CPU-s 2.47KiB/CPU-s 0.0 0.021728 False False
splunk_hec_route_s3 ingress throughput 30.37KiB/CPU-s 0.25 99.85% 11.64MiB/CPU-s 548.63KiB/CPU-s 6.75KiB/CPU-s 0.0 0.046014 11.67MiB/CPU-s 548.4KiB/CPU-s 6.75KiB/CPU-s 0.0 0.045879 False False
socket_to_socket_blackhole ingress throughput 23.48KiB/CPU-s 0.17 100.00% 13.17MiB/CPU-s 238.64KiB/CPU-s 2.94KiB/CPU-s 0.0 0.017691 13.2MiB/CPU-s 261.89KiB/CPU-s 3.22KiB/CPU-s 0.0 0.01938 False False
enterprise_http_to_http ingress throughput 3.78KiB/CPU-s 0.03 74.84% 13.62MiB/CPU-s 220.45KiB/CPU-s 2.71KiB/CPU-s 0.0 0.015804 13.62MiB/CPU-s 151.83KiB/CPU-s 1.87KiB/CPU-s 0.0 0.010882 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput 96.76B/CPU-s 0.00 1.26% 13.61MiB/CPU-s 339.18KiB/CPU-s 4.17KiB/CPU-s 0.0 0.024329 13.61MiB/CPU-s 348.57KiB/CPU-s 4.29KiB/CPU-s 0.0 0.025002 False False
splunk_hec_indexer_ack_blackhole ingress throughput 249.92B/CPU-s 0.00 4.37% 13.62MiB/CPU-s 257.64KiB/CPU-s 3.17KiB/CPU-s 0.0 0.018476 13.62MiB/CPU-s 254.32KiB/CPU-s 3.13KiB/CPU-s 0.0 0.018238 False False
http_to_http_noack ingress throughput -1.88KiB/CPU-s -0.01 24.36% 13.61MiB/CPU-s 340.23KiB/CPU-s 4.19KiB/CPU-s 0.0 0.024408 13.61MiB/CPU-s 356.06KiB/CPU-s 4.38KiB/CPU-s 0.0 0.025548 False False
fluent_elasticsearch ingress throughput -3.27KiB/CPU-s -0.01 85.85% 45.41MiB/CPU-s 30.44KiB/CPU-s 379.53B/CPU-s 0.0 0.000655 45.41MiB/CPU-s 179.92KiB/CPU-s 2.19KiB/CPU-s 0.0 0.003869 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -2.1KiB/CPU-s -0.02 36.21% 13.62MiB/CPU-s 249.1KiB/CPU-s 3.06KiB/CPU-s 0.0 0.017862 13.62MiB/CPU-s 262.68KiB/CPU-s 3.23KiB/CPU-s 0.0 0.018839 False False
otlp_grpc_to_blackhole ingress throughput -719.58B/CPU-s -0.07 59.65% 1.03MiB/CPU-s 50.58KiB/CPU-s 637.19B/CPU-s 0.0 0.048105 1.03MiB/CPU-s 46.0KiB/CPU-s 579.62B/CPU-s 0.0 0.043782 False False
http_to_http_json ingress throughput -9.44KiB/CPU-s -0.07 97.59% 13.62MiB/CPU-s 223.8KiB/CPU-s 2.75KiB/CPU-s 0.0 0.016043 13.61MiB/CPU-s 256.42KiB/CPU-s 3.15KiB/CPU-s 0.0 0.018394 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -149.73KiB/CPU-s -0.45 100.00% 32.7MiB/CPU-s 989.41KiB/CPU-s 12.17KiB/CPU-s 0.0 0.029543 32.56MiB/CPU-s 1.05MiB/CPU-s 13.26KiB/CPU-s 0.0 0.032335 False False
otlp_http_to_blackhole ingress throughput -7.2KiB/CPU-s -0.45 99.97% 1.55MiB/CPU-s 115.95KiB/CPU-s 1.43KiB/CPU-s 0.0 0.07302 1.54MiB/CPU-s 111.4KiB/CPU-s 1.37KiB/CPU-s 0.0 0.07047 False False
datadog_agent_remap_blackhole_acks ingress throughput -185.38KiB/CPU-s -0.57 100.00% 31.63MiB/CPU-s 875.32KiB/CPU-s 10.77KiB/CPU-s 0.0 0.027027 31.44MiB/CPU-s 1.24MiB/CPU-s 15.64KiB/CPU-s 0.0 0.039453 False False
syslog_splunk_hec_logs ingress throughput -67.81KiB/CPU-s -0.73 100.00% 9.03MiB/CPU-s 233.68KiB/CPU-s 2.87KiB/CPU-s 0.0 0.025269 8.96MiB/CPU-s 214.25KiB/CPU-s 2.64KiB/CPU-s 0.0 0.023338 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -29.55KiB/CPU-s -0.79 100.00% 3.67MiB/CPU-s 410.6KiB/CPU-s 5.05KiB/CPU-s 0.0 0.109184 3.64MiB/CPU-s 384.06KiB/CPU-s 4.73KiB/CPU-s 0.0 0.102935 True True
syslog_loki ingress throughput -105.98KiB/CPU-s -1.21 100.00% 8.52MiB/CPU-s 194.56KiB/CPU-s 2.39KiB/CPU-s 0.0 0.022296 8.42MiB/CPU-s 271.22KiB/CPU-s 3.34KiB/CPU-s 0.0 0.031464 False False
syslog_log2metric_humio_metrics ingress throughput -347.57KiB/CPU-s -5.42 100.00% 6.27MiB/CPU-s 219.26KiB/CPU-s 2.7KiB/CPU-s 0.0 0.034171 5.93MiB/CPU-s 260.64KiB/CPU-s 3.21KiB/CPU-s 0.0 0.042945 False False
file_to_blackhole egress throughput -860.66KiB/CPU-s -11.58 100.00% 7.26MiB/CPU-s 3.98MiB/CPU-s 133.16KiB/CPU-s 0.0 0.547918 6.42MiB/CPU-s 4.47MiB/CPU-s 122.98KiB/CPU-s 0.0 0.697031 True True

@neuronull neuronull requested a review from spencergilbert April 3, 2023 22:15
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.

Everything here looks good to me, but I would like the option to disable compression if desired.

src/sinks/appsignal/mod.rs Outdated Show resolved Hide resolved
@tombruijn tombruijn requested a review from neuronull April 4, 2023 07:37
tombruijn added a commit to appsignal/vector that referenced this pull request Apr 4, 2023
Use the built-in Compression struct instead. As mentioned on the PR, add
the no-compression option again, and use it by default.

vectordotdev#16650 (comment)
@github-actions
Copy link

github-actions bot commented Apr 4, 2023

Regression Detector Results

Run ID: 24c3ec7b-60e2-433d-8fb8-0ea553377f29
Baseline: 56208cc
Comparison: bf505d5
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_acks ingress throughput 793.92KiB/CPU-s 2.54 100.00% 30.54MiB/CPU-s 1.8MiB/CPU-s 22.73KiB/CPU-s 0.0 0.059068 31.31MiB/CPU-s 817.28KiB/CPU-s 10.06KiB/CPU-s 0.0 0.025487 False False
datadog_agent_remap_datadog_logs_acks ingress throughput 350.52KiB/CPU-s 1.06 100.00% 32.31MiB/CPU-s 866.23KiB/CPU-s 10.66KiB/CPU-s 0.0 0.026176 32.66MiB/CPU-s 998.82KiB/CPU-s 12.29KiB/CPU-s 0.0 0.029867 False False
syslog_splunk_hec_logs ingress throughput 32.55KiB/CPU-s 0.36 100.00% 8.82MiB/CPU-s 232.47KiB/CPU-s 2.86KiB/CPU-s 0.0 0.025731 8.85MiB/CPU-s 221.36KiB/CPU-s 2.72KiB/CPU-s 0.0 0.024413 False False
datadog_agent_remap_datadog_logs ingress throughput 85.77KiB/CPU-s 0.25 100.00% 32.9MiB/CPU-s 917.71KiB/CPU-s 11.29KiB/CPU-s 0.0 0.027235 32.99MiB/CPU-s 827.96KiB/CPU-s 10.19KiB/CPU-s 0.0 0.02451 False False
otlp_http_to_blackhole ingress throughput 3.05KiB/CPU-s 0.19 87.22% 1.54MiB/CPU-s 115.13KiB/CPU-s 1.42KiB/CPU-s 0.0 0.07316 1.54MiB/CPU-s 115.04KiB/CPU-s 1.42KiB/CPU-s 0.0 0.072957 False False
datadog_agent_remap_blackhole ingress throughput 45.29KiB/CPU-s 0.14 99.59% 31.17MiB/CPU-s 903.96KiB/CPU-s 11.12KiB/CPU-s 0.0 0.028321 31.21MiB/CPU-s 907.76KiB/CPU-s 11.17KiB/CPU-s 0.0 0.028399 False False
syslog_humio_logs ingress throughput 7.47KiB/CPU-s 0.08 86.35% 8.81MiB/CPU-s 233.27KiB/CPU-s 2.87KiB/CPU-s 0.0 0.025861 8.82MiB/CPU-s 334.64KiB/CPU-s 4.12KiB/CPU-s 0.0 0.03707 False False
http_to_http_noack ingress throughput 5.49KiB/CPU-s 0.04 69.25% 13.61MiB/CPU-s 337.84KiB/CPU-s 4.16KiB/CPU-s 0.0 0.024237 13.62MiB/CPU-s 277.14KiB/CPU-s 3.41KiB/CPU-s 0.0 0.019875 False False
syslog_log2metric_humio_metrics ingress throughput 765.81B/CPU-s 0.01 14.32% 6.08MiB/CPU-s 265.09KiB/CPU-s 3.26KiB/CPU-s 0.0 0.042559 6.08MiB/CPU-s 207.71KiB/CPU-s 2.56KiB/CPU-s 0.0 0.033342 False False
enterprise_http_to_http ingress throughput 1.71KiB/CPU-s 0.01 43.64% 13.62MiB/CPU-s 185.44KiB/CPU-s 2.28KiB/CPU-s 0.0 0.013292 13.62MiB/CPU-s 152.53KiB/CPU-s 1.88KiB/CPU-s 0.0 0.010932 False False
fluent_elasticsearch ingress throughput 261.61B/CPU-s 0.00 37.44% 45.41MiB/CPU-s 30.38KiB/CPU-s 378.72B/CPU-s 0.0 0.000653 45.41MiB/CPU-s 30.46KiB/CPU-s 379.59B/CPU-s 0.0 0.000655 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -1.52KiB/CPU-s -0.01 19.59% 13.62MiB/CPU-s 329.35KiB/CPU-s 4.05KiB/CPU-s 0.0 0.023621 13.61MiB/CPU-s 372.71KiB/CPU-s 4.58KiB/CPU-s 0.0 0.026733 False False
splunk_hec_indexer_ack_blackhole ingress throughput -3.07KiB/CPU-s -0.02 50.62% 13.62MiB/CPU-s 250.06KiB/CPU-s 3.08KiB/CPU-s 0.0 0.017932 13.61MiB/CPU-s 264.76KiB/CPU-s 3.26KiB/CPU-s 0.0 0.01899 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -3.24KiB/CPU-s -0.02 52.82% 13.62MiB/CPU-s 247.44KiB/CPU-s 3.04KiB/CPU-s 0.0 0.017743 13.61MiB/CPU-s 269.79KiB/CPU-s 3.32KiB/CPU-s 0.0 0.01935 False False
http_to_http_json ingress throughput -27.05KiB/CPU-s -0.19 100.00% 13.62MiB/CPU-s 228.02KiB/CPU-s 2.81KiB/CPU-s 0.0 0.016347 13.59MiB/CPU-s 264.23KiB/CPU-s 3.25KiB/CPU-s 0.0 0.018979 False False
syslog_log2metric_splunk_hec_metrics ingress throughput -62.49KiB/CPU-s -0.67 100.00% 9.14MiB/CPU-s 230.36KiB/CPU-s 2.83KiB/CPU-s 0.0 0.024612 9.08MiB/CPU-s 334.54KiB/CPU-s 4.12KiB/CPU-s 0.0 0.035982 False False
splunk_hec_route_s3 ingress throughput -105.89KiB/CPU-s -0.88 100.00% 11.74MiB/CPU-s 597.89KiB/CPU-s 7.36KiB/CPU-s 0.0 0.049735 11.64MiB/CPU-s 540.45KiB/CPU-s 6.65KiB/CPU-s 0.0 0.045358 False False
socket_to_socket_blackhole ingress throughput -152.98KiB/CPU-s -1.12 100.00% 13.28MiB/CPU-s 267.38KiB/CPU-s 3.29KiB/CPU-s 0.0 0.01966 13.13MiB/CPU-s 299.14KiB/CPU-s 3.68KiB/CPU-s 0.0 0.022245 False False
otlp_grpc_to_blackhole ingress throughput -19.15KiB/CPU-s -1.79 100.00% 1.04MiB/CPU-s 44.98KiB/CPU-s 566.75B/CPU-s 0.0 0.042095 1.02MiB/CPU-s 46.93KiB/CPU-s 591.41B/CPU-s 0.0 0.044725 False False
http_to_http_acks ingress throughput -110.57KiB/CPU-s -2.04 97.69% 5.3MiB/CPU-s 2.8MiB/CPU-s 35.24KiB/CPU-s 0.0 0.527296 5.2MiB/CPU-s 2.66MiB/CPU-s 33.54KiB/CPU-s 0.0 0.512165 True False
file_to_blackhole egress throughput -178.49KiB/CPU-s -2.54 67.20% 6.87MiB/CPU-s 4.19MiB/CPU-s 132.96KiB/CPU-s 0.095877 0.610464 6.69MiB/CPU-s 4.02MiB/CPU-s 124.89KiB/CPU-s 2.214022 0.599819 True True
syslog_loki ingress throughput -222.44KiB/CPU-s -2.60 100.00% 8.37MiB/CPU-s 205.21KiB/CPU-s 2.52KiB/CPU-s 0.0 0.023939 8.15MiB/CPU-s 415.15KiB/CPU-s 5.11KiB/CPU-s 0.0 0.049722 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -137.27KiB/CPU-s -3.62 100.00% 3.7MiB/CPU-s 402.17KiB/CPU-s 4.95KiB/CPU-s 0.0 0.106003 3.57MiB/CPU-s 390.81KiB/CPU-s 4.81KiB/CPU-s 0.0 0.106875 True True
http_text_to_http_json ingress throughput -1.09MiB/CPU-s -4.30 100.00% 25.32MiB/CPU-s 522.87KiB/CPU-s 6.43KiB/CPU-s 0.0 0.020162 24.23MiB/CPU-s 578.03KiB/CPU-s 7.11KiB/CPU-s 0.0 0.023291 False False

Use the built-in Compression struct instead. As mentioned on the PR, add
the no-compression option again, and use it by default.

vectordotdev#16650 (comment)
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.

Awesome, thank you! I retriggered the regression test workflow that failed to complete to unblock merging.

@github-actions
Copy link

github-actions bot commented Apr 4, 2023

Regression Detector Results

Run ID: 80528bcf-fc18-489a-a0cc-8c524301cf26
Baseline: 56208cc
Comparison: c042735
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 448.55KiB/CPU-s 6.78 98.27% 6.46MiB/CPU-s 4.42MiB/CPU-s 130.85KiB/CPU-s 0.166806 0.684747 6.9MiB/CPU-s 4.27MiB/CPU-s 135.37KiB/CPU-s 5.358852 0.619306 True True
syslog_humio_logs ingress throughput 126.25KiB/CPU-s 1.38 100.00% 8.96MiB/CPU-s 174.07KiB/CPU-s 2.14KiB/CPU-s 0.0 0.018974 9.08MiB/CPU-s 205.31KiB/CPU-s 2.53KiB/CPU-s 0.0 0.022075 False False
syslog_splunk_hec_logs ingress throughput 119.18KiB/CPU-s 1.31 100.00% 8.86MiB/CPU-s 396.68KiB/CPU-s 4.88KiB/CPU-s 0.0 0.043743 8.97MiB/CPU-s 191.2KiB/CPU-s 2.35KiB/CPU-s 0.0 0.020811 False False
otlp_http_to_blackhole ingress throughput 13.73KiB/CPU-s 0.87 100.00% 1.55MiB/CPU-s 113.52KiB/CPU-s 1.4KiB/CPU-s 0.0 0.071722 1.56MiB/CPU-s 102.54KiB/CPU-s 1.26KiB/CPU-s 0.0 0.064227 False False
syslog_log2metric_splunk_hec_metrics ingress throughput 67.01KiB/CPU-s 0.71 100.00% 9.24MiB/CPU-s 209.26KiB/CPU-s 2.58KiB/CPU-s 0.0 0.02212 9.3MiB/CPU-s 274.15KiB/CPU-s 3.37KiB/CPU-s 0.0 0.028775 False False
http_to_http_acks ingress throughput 32.72KiB/CPU-s 0.61 50.19% 5.22MiB/CPU-s 2.7MiB/CPU-s 34.0KiB/CPU-s 0.0 0.517211 5.25MiB/CPU-s 2.72MiB/CPU-s 34.3KiB/CPU-s 0.0 0.518444 True False
enterprise_http_to_http ingress throughput 7.4KiB/CPU-s 0.05 94.62% 13.62MiB/CPU-s 272.65KiB/CPU-s 3.36KiB/CPU-s 0.0 0.019552 13.62MiB/CPU-s 151.33KiB/CPU-s 1.86KiB/CPU-s 0.0 0.010846 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput 1.0KiB/CPU-s 0.01 13.74% 13.61MiB/CPU-s 333.79KiB/CPU-s 4.11KiB/CPU-s 0.0 0.023943 13.61MiB/CPU-s 332.77KiB/CPU-s 4.09KiB/CPU-s 0.0 0.023868 False False
syslog_loki ingress throughput 491.63B/CPU-s 0.01 10.16% 8.52MiB/CPU-s 189.39KiB/CPU-s 2.33KiB/CPU-s 0.0 0.021719 8.52MiB/CPU-s 239.86KiB/CPU-s 2.95KiB/CPU-s 0.0 0.027504 False False
fluent_elasticsearch ingress throughput -206.22B/CPU-s -0.00 30.09% 45.41MiB/CPU-s 30.3KiB/CPU-s 377.71B/CPU-s 0.0 0.000651 45.41MiB/CPU-s 30.22KiB/CPU-s 376.73B/CPU-s 0.0 0.00065 False False
http_to_http_json ingress throughput -446.62B/CPU-s -0.00 8.71% 13.62MiB/CPU-s 228.11KiB/CPU-s 2.81KiB/CPU-s 0.0 0.016353 13.62MiB/CPU-s 230.29KiB/CPU-s 2.83KiB/CPU-s 0.0 0.01651 False False
http_to_http_noack ingress throughput 116.21B/CPU-s 0.00 1.44% 13.61MiB/CPU-s 361.76KiB/CPU-s 4.45KiB/CPU-s 0.0 0.025957 13.61MiB/CPU-s 360.63KiB/CPU-s 4.44KiB/CPU-s 0.0 0.025876 False False
splunk_hec_indexer_ack_blackhole ingress throughput -876.21B/CPU-s -0.01 14.84% 13.61MiB/CPU-s 260.35KiB/CPU-s 3.2KiB/CPU-s 0.0 0.018673 13.61MiB/CPU-s 265.5KiB/CPU-s 3.27KiB/CPU-s 0.0 0.019043 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -2.07KiB/CPU-s -0.01 34.94% 13.62MiB/CPU-s 254.55KiB/CPU-s 3.13KiB/CPU-s 0.0 0.018254 13.61MiB/CPU-s 270.42KiB/CPU-s 3.33KiB/CPU-s 0.0 0.019395 False False
datadog_agent_remap_blackhole_acks ingress throughput -27.07KiB/CPU-s -0.08 97.60% 31.55MiB/CPU-s 844.8KiB/CPU-s 10.4KiB/CPU-s 0.0 0.026148 31.52MiB/CPU-s 485.9KiB/CPU-s 5.98KiB/CPU-s 0.0 0.015052 False False
syslog_log2metric_humio_metrics ingress throughput -51.02KiB/CPU-s -0.78 100.00% 6.35MiB/CPU-s 96.16KiB/CPU-s 1.18KiB/CPU-s 0.0 0.014786 6.3MiB/CPU-s 202.19KiB/CPU-s 2.49KiB/CPU-s 0.0 0.031334 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -301.9KiB/CPU-s -0.91 100.00% 32.56MiB/CPU-s 836.17KiB/CPU-s 10.29KiB/CPU-s 0.0 0.025077 32.26MiB/CPU-s 1.3MiB/CPU-s 16.43KiB/CPU-s 0.0 0.040427 False False
socket_to_socket_blackhole ingress throughput -176.85KiB/CPU-s -1.30 100.00% 13.32MiB/CPU-s 302.61KiB/CPU-s 3.72KiB/CPU-s 0.0 0.02219 13.14MiB/CPU-s 278.77KiB/CPU-s 3.43KiB/CPU-s 0.0 0.02071 False False
datadog_agent_remap_datadog_logs ingress throughput -502.62KiB/CPU-s -1.48 100.00% 33.06MiB/CPU-s 923.54KiB/CPU-s 11.36KiB/CPU-s 0.0 0.027282 32.56MiB/CPU-s 1.3MiB/CPU-s 16.33KiB/CPU-s 0.0 0.039794 False False
datadog_agent_remap_blackhole ingress throughput -566.23KiB/CPU-s -1.76 100.00% 31.48MiB/CPU-s 1.16MiB/CPU-s 14.61KiB/CPU-s 0.0 0.036833 30.93MiB/CPU-s 1.49MiB/CPU-s 18.72KiB/CPU-s 0.0 0.048044 False False
otlp_grpc_to_blackhole ingress throughput -19.03KiB/CPU-s -1.78 100.00% 1.04MiB/CPU-s 45.96KiB/CPU-s 579.17B/CPU-s 0.0 0.043089 1.02MiB/CPU-s 43.31KiB/CPU-s 545.85B/CPU-s 0.0 0.041341 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -70.75KiB/CPU-s -1.82 100.00% 3.81MiB/CPU-s 456.32KiB/CPU-s 5.61KiB/CPU-s 0.0 0.117104 3.74MiB/CPU-s 424.89KiB/CPU-s 5.23KiB/CPU-s 0.0 0.111055 True True
splunk_hec_route_s3 ingress throughput -374.68KiB/CPU-s -3.11 100.00% 11.78MiB/CPU-s 634.99KiB/CPU-s 7.81KiB/CPU-s 0.0 0.052636 11.41MiB/CPU-s 766.8KiB/CPU-s 9.43KiB/CPU-s 0.0 0.065599 False False
http_text_to_http_json ingress throughput -1.02MiB/CPU-s -4.03 100.00% 25.26MiB/CPU-s 663.21KiB/CPU-s 8.16KiB/CPU-s 0.0 0.02564 24.24MiB/CPU-s 573.82KiB/CPU-s 7.06KiB/CPU-s 0.0 0.023115 False False

As discussed in the PR, use gzip as the default compression for the
AppSignal sink for now.

vectordotdev#16650 (comment)
Use the `content_encoding` function to set the Content-Encoding header
value. Removes the match-statement with a simpler if-statement.
@netlify
Copy link

netlify bot commented Apr 5, 2023

Deploy Preview for vrl-playground failed.

Name Link
🔨 Latest commit 4b7b860
🔍 Latest deploy log https://app.netlify.com/sites/vrl-playground/deploys/642d161cabd87a00086e8896

@github-actions
Copy link

github-actions bot commented Apr 5, 2023

Regression Detector Results

Run ID: a5bc54c6-93da-4465-bf66-f0de29024645
Baseline: 5074d82
Comparison: 4b7b860
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
syslog_log2metric_humio_metrics ingress throughput -356.41KiB/CPU-s -5.45 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
http_to_http_acks ingress throughput 73.51KiB/CPU-s 1.38 87.24% 5.21MiB/CPU-s 2.72MiB/CPU-s 34.32KiB/CPU-s 0.0 0.522113 5.29MiB/CPU-s 2.69MiB/CPU-s 33.91KiB/CPU-s 0.0 0.508952 True False
datadog_agent_remap_blackhole_acks ingress throughput 217.52KiB/CPU-s 0.68 100.00% 31.18MiB/CPU-s 978.35KiB/CPU-s 12.04KiB/CPU-s 0.0 0.030635 31.4MiB/CPU-s 738.97KiB/CPU-s 9.1KiB/CPU-s 0.0 0.022983 False False
syslog_log2metric_splunk_hec_metrics ingress throughput 58.83KiB/CPU-s 0.62 100.00% 9.2MiB/CPU-s 288.54KiB/CPU-s 3.55KiB/CPU-s 0.0 0.030636 9.25MiB/CPU-s 263.23KiB/CPU-s 3.24KiB/CPU-s 0.0 0.027775 False False
syslog_humio_logs ingress throughput 2.13KiB/CPU-s 0.02 43.85% 8.97MiB/CPU-s 194.05KiB/CPU-s 2.39KiB/CPU-s 0.0 0.021118 8.98MiB/CPU-s 225.73KiB/CPU-s 2.78KiB/CPU-s 0.0 0.024559 False False
enterprise_http_to_http ingress throughput 1.77KiB/CPU-s 0.01 44.77% 13.62MiB/CPU-s 188.67KiB/CPU-s 2.32KiB/CPU-s 0.0 0.013524 13.62MiB/CPU-s 152.14KiB/CPU-s 1.87KiB/CPU-s 0.0 0.010905 False False
http_to_http_noack ingress throughput 2.05KiB/CPU-s 0.01 24.04% 13.61MiB/CPU-s 394.06KiB/CPU-s 4.85KiB/CPU-s 0.0 0.028282 13.61MiB/CPU-s 374.77KiB/CPU-s 4.61KiB/CPU-s 0.0 0.026893 False False
fluent_elasticsearch ingress throughput -293.99B/CPU-s -0.00 42.23% 45.41MiB/CPU-s 30.1KiB/CPU-s 375.16B/CPU-s 0.0 0.000647 45.41MiB/CPU-s 29.8KiB/CPU-s 371.56B/CPU-s 0.0 0.000641 False False
http_to_http_json ingress throughput 411.88B/CPU-s 0.00 8.15% 13.62MiB/CPU-s 227.26KiB/CPU-s 2.8KiB/CPU-s 0.0 0.016292 13.62MiB/CPU-s 224.63KiB/CPU-s 2.76KiB/CPU-s 0.0 0.016102 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput 1.3B/CPU-s 0.00 0.02% 13.61MiB/CPU-s 359.03KiB/CPU-s 4.42KiB/CPU-s 0.0 0.025752 13.61MiB/CPU-s 374.29KiB/CPU-s 4.6KiB/CPU-s 0.0 0.026847 False False
splunk_hec_indexer_ack_blackhole ingress throughput -2.17KiB/CPU-s -0.02 36.70% 13.62MiB/CPU-s 255.67KiB/CPU-s 3.14KiB/CPU-s 0.0 0.018335 13.61MiB/CPU-s 265.79KiB/CPU-s 3.27KiB/CPU-s 0.0 0.019064 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -4.87KiB/CPU-s -0.03 72.14% 13.62MiB/CPU-s 242.31KiB/CPU-s 2.98KiB/CPU-s 0.0 0.017374 13.61MiB/CPU-s 273.68KiB/CPU-s 3.37KiB/CPU-s 0.0 0.01963 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -25.63KiB/CPU-s -0.08 66.71% 32.19MiB/CPU-s 1.8MiB/CPU-s 22.64KiB/CPU-s 0.0 0.05582 32.16MiB/CPU-s 1.09MiB/CPU-s 13.71KiB/CPU-s 0.0 0.033828 False False
datadog_agent_remap_datadog_logs ingress throughput -168.94KiB/CPU-s -0.50 100.00% 32.89MiB/CPU-s 1.03MiB/CPU-s 13.03KiB/CPU-s 0.0 0.031434 32.73MiB/CPU-s 1003.58KiB/CPU-s 12.35KiB/CPU-s 0.0 0.029945 False False
datadog_agent_remap_blackhole ingress throughput -228.72KiB/CPU-s -0.72 100.00% 31.08MiB/CPU-s 1.4MiB/CPU-s 17.66KiB/CPU-s 0.0 0.045096 30.85MiB/CPU-s 887.59KiB/CPU-s 10.92KiB/CPU-s 0.0 0.028091 False False
splunk_hec_route_s3 ingress throughput -204.19KiB/CPU-s -1.72 100.00% 11.61MiB/CPU-s 573.63KiB/CPU-s 7.06KiB/CPU-s 0.0 0.048256 11.41MiB/CPU-s 657.55KiB/CPU-s 8.09KiB/CPU-s 0.0 0.056282 False False
socket_to_socket_blackhole ingress throughput -291.29KiB/CPU-s -2.12 100.00% 13.42MiB/CPU-s 381.48KiB/CPU-s 4.69KiB/CPU-s 0.0 0.027756 13.14MiB/CPU-s 397.45KiB/CPU-s 4.89KiB/CPU-s 0.0 0.029545 False False
syslog_loki ingress throughput -184.5KiB/CPU-s -2.14 100.00% 8.42MiB/CPU-s 213.87KiB/CPU-s 2.63KiB/CPU-s 0.0 0.024789 8.24MiB/CPU-s 283.92KiB/CPU-s 3.49KiB/CPU-s 0.0 0.033626 False False
syslog_splunk_hec_logs ingress throughput -248.67KiB/CPU-s -2.70 100.00% 9.0MiB/CPU-s 237.32KiB/CPU-s 2.92KiB/CPU-s 0.0 0.025736 8.76MiB/CPU-s 257.97KiB/CPU-s 3.17KiB/CPU-s 0.0 0.02875 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -102.24KiB/CPU-s -2.72 100.00% 3.68MiB/CPU-s 425.34KiB/CPU-s 5.23KiB/CPU-s 0.0 0.113002 3.58MiB/CPU-s 454.09KiB/CPU-s 5.59KiB/CPU-s 0.0 0.124011 True True
otlp_grpc_to_blackhole ingress throughput -33.88KiB/CPU-s -3.13 100.00% 1.06MiB/CPU-s 48.56KiB/CPU-s 611.81B/CPU-s 0.0 0.044839 1.02MiB/CPU-s 43.81KiB/CPU-s 552.1B/CPU-s 0.0 0.041764 False False
http_text_to_http_json ingress throughput -1.03MiB/CPU-s -4.16 100.00% 24.68MiB/CPU-s 641.12KiB/CPU-s 7.89KiB/CPU-s 0.0 0.025365 23.65MiB/CPU-s 581.69KiB/CPU-s 7.16KiB/CPU-s 0.0 0.024013 False False
otlp_http_to_blackhole ingress throughput -79.96KiB/CPU-s -4.91 100.00% 1.59MiB/CPU-s 97.86KiB/CPU-s 1.2KiB/CPU-s 0.0 0.060054 1.51MiB/CPU-s 130.73KiB/CPU-s 1.61KiB/CPU-s 0.0 0.084365 False False
syslog_log2metric_humio_metrics ingress throughput -356.41KiB/CPU-s -5.45 100.00% 6.38MiB/CPU-s 194.27KiB/CPU-s 2.39KiB/CPU-s 0.0 0.029726 6.03MiB/CPU-s 309.44KiB/CPU-s 3.81KiB/CPU-s 0.0 0.05008 False False
file_to_blackhole egress throughput -942.86KiB/CPU-s -12.83 100.00% 7.18MiB/CPU-s 4.27MiB/CPU-s 142.52KiB/CPU-s 0.0 0.594796 6.26MiB/CPU-s 4.33MiB/CPU-s 121.34KiB/CPU-s 0.0 0.691151 True True

@tombruijn tombruijn requested a review from neuronull April 5, 2023 11:41
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.

Ran the integration test locally again one final time.

Everything is looking great! Thanks for the contribution @tombruijn and @thijsc 🚀

@neuronull neuronull merged commit db25725 into vectordotdev:master Apr 5, 2023
@tombruijn
Copy link
Contributor Author

Thanks for all the help @neuronull!

tombruijn added a commit to appsignal/vector that referenced this pull request Aug 3, 2023
Previously, the AppSignal sink was written in what was already a bit of
an older style in PR vectordotdev#16650.

We want to change some functionality in the future for how metrics are
sent. To do this, it looks like we'll need to use the newer sink style.

We have updated the sink to the new StreamSink style, using a
HttpBatchService wrapper to send the requests to the AppSignal public
endpoint API.

Part of [tracking issue vectordotdev#9261][1]

[1]: vectordotdev#9261

Co-authored-by: Jeff Kreeftmeijer <jeff@kreeft.me>
tombruijn added a commit to appsignal/vector that referenced this pull request Aug 3, 2023
Previously, the AppSignal sink was written in what was already a bit of
an older style in PR vectordotdev#16650.

We want to change some functionality in the future for how metrics are
sent. To do this, it looks like we'll need to use the newer sink style.
With this change, the AppSignal sink's functionality has remained the
same.

We have updated the sink to the new StreamSink style, using a
HttpBatchService wrapper to send the requests to the AppSignal public
endpoint API. We followed the [sink guides][2] initially and looked at
other sinks already rewritten linked in [issue vectordotdev#9261][1] to see how to
implement it further.

Updated the integration_tests to test if the sink is a HTTP sink with
the `HTTP_SINK_TAGS`. Previously, it didn't test yet if the
`EndpointBytesSent` event was sent.

We're unsure if `AppsignalResponse`'s `bytes_sent` needs to be
implemented or not. If it returns `None` the tests also pass, but we
thought we might as well implement it properly.

Part of [tracking issue vectordotdev#9261][1]

[1]: vectordotdev#9261
[2]: https://github.com/vectordotdev/vector/blob/600f8191a8fe169eb38c429958dd59714349acb4/docs/tutorials/sinks/1_basic_sink.md

Co-authored-by: Jeff Kreeftmeijer <jeff@kreeft.me>
tombruijn added a commit to appsignal/vector that referenced this pull request Aug 10, 2023
Previously, the AppSignal sink was written in what was already a bit of
an older style in PR vectordotdev#16650.

We want to change some functionality in the future for how metrics are
sent. To do this, it looks like we'll need to use the newer sink style,
or at least it will be easier. With this change, the AppSignal sink's
functionality has remained the same.

We have updated the sink to the new StreamSink style, using a
HttpBatchService wrapper to send the requests to the AppSignal public
endpoint API. We followed the [sink guides][2] initially and looked at
other sinks already rewritten linked in [issue vectordotdev#9261][1] to see how to
implement it further.

Updated the integration_tests to test if the sink is a HTTP sink with
the `HTTP_SINK_TAGS`. Previously, it didn't test yet if the
`EndpointBytesSent` event was sent.

We're unsure if `AppsignalResponse`'s `bytes_sent` needs to be
implemented or not. If it returns `None` the tests also pass, but we
thought we might as well implement it properly.

Part of [tracking issue vectordotdev#9261][1]

[1]: vectordotdev#9261
[2]: https://github.com/vectordotdev/vector/blob/600f8191a8fe169eb38c429958dd59714349acb4/docs/tutorials/sinks/1_basic_sink.md

Co-authored-by: Jeff Kreeftmeijer <jeff@kreeft.me>
tombruijn added a commit to appsignal/vector that referenced this pull request Aug 10, 2023
Previously, the AppSignal sink was written in what was already a bit of
an older style in PR vectordotdev#16650.

We want to change some functionality in the future for how metrics are
sent. To do this, it looks like we'll need to use the newer sink style,
or at least it will be easier. With this change, the AppSignal sink's
functionality has remained the same.

We have updated the sink to the new StreamSink style, using a
HttpBatchService wrapper to send the requests to the AppSignal public
endpoint API. We followed the [sink guides][2] initially and looked at
other sinks already rewritten linked in [issue vectordotdev#9261][1] to see how to
implement it further.

Updated the integration_tests to test if the sink is a HTTP sink with
the `HTTP_SINK_TAGS`. Previously, it didn't test yet if the
`EndpointBytesSent` event was sent.

We're unsure if `AppsignalResponse`'s `bytes_sent` needs to be
implemented or not. If it returns `None` the tests also pass, but we
thought we might as well implement it properly.

Part of [tracking issue vectordotdev#9261][1]

[1]: vectordotdev#9261
[2]: https://github.com/vectordotdev/vector/blob/600f8191a8fe169eb38c429958dd59714349acb4/docs/tutorials/sinks/1_basic_sink.md

Co-authored-by: Jeff Kreeftmeijer <jeff@kreeft.me>
github-merge-queue bot pushed a commit that referenced this pull request Aug 16, 2023
* chore(appsignal sink): Refactor to use StreamSink

Previously, the AppSignal sink was written in what was already a bit of
an older style in PR #16650.

We want to change some functionality in the future for how metrics are
sent. To do this, it looks like we'll need to use the newer sink style,
or at least it will be easier. With this change, the AppSignal sink's
functionality has remained the same.

We have updated the sink to the new StreamSink style, using a
HttpBatchService wrapper to send the requests to the AppSignal public
endpoint API. We followed the [sink guides][2] initially and looked at
other sinks already rewritten linked in [issue #9261][1] to see how to
implement it further.

Updated the integration_tests to test if the sink is a HTTP sink with
the `HTTP_SINK_TAGS`. Previously, it didn't test yet if the
`EndpointBytesSent` event was sent.

We're unsure if `AppsignalResponse`'s `bytes_sent` needs to be
implemented or not. If it returns `None` the tests also pass, but we
thought we might as well implement it properly.

Part of [tracking issue #9261][1]

[1]: #9261
[2]: https://github.com/vectordotdev/vector/blob/600f8191a8fe169eb38c429958dd59714349acb4/docs/tutorials/sinks/1_basic_sink.md

Co-authored-by: Jeff Kreeftmeijer <jeff@kreeft.me>

* Split AppSignal sink into separate modules

As per review feedback: split the new sink style into separate module
files.

* Fix visibility of things in AppSignal sink

It doesn't need to be visible for the entire crate, only the AppSignal
sink scope.

---------

Co-authored-by: Jeff Kreeftmeijer <jeff@kreeft.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain: ci Anything related to Vector's CI environment domain: external docs Anything related to Vector's external, public documentation domain: sinks Anything related to the Vector's sinks meta: awaiting author Pull requests that are awaiting their author.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants