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(http_server source): add all headers to the namespace metadata #18922

Merged
merged 10 commits into from
Dec 5, 2023

Conversation

sonnens
Copy link
Contributor

@sonnens sonnens commented Oct 24, 2023

This adds all the http headers to the source metadata if log_namespace is enabled

@sonnens sonnens requested a review from neuronull as a code owner October 24, 2023 16:01
@sonnens sonnens requested a review from a team October 24, 2023 16:01
@netlify
Copy link

netlify bot commented Oct 24, 2023

👷 Deploy request for vector-project pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit b4d120d

@bits-bot
Copy link

bits-bot commented Oct 24, 2023

CLA assistant check
All committers have signed the CLA.

@netlify
Copy link

netlify bot commented Oct 24, 2023

Deploy Preview for vrl-playground ready!

Name Link
🔨 Latest commit b4d120d
🔍 Latest deploy log https://app.netlify.com/sites/vrl-playground/deploys/6537ea548a6a010008595c57
😎 Deploy Preview https://deploy-preview-18922--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 configuration.

@github-actions github-actions bot added the domain: sources Anything related to the Vector's sources label Oct 24, 2023
@neuronull neuronull added the source: http_server Anything `http_server` source related label Oct 24, 2023
@StephenWakely
Copy link
Contributor

Thanks. It's not completely clear what the use case for this would be and it does add some extra processing overhead.

I'm not seeing a relevant issue that this is solving. Would it be possible to raise one and add all the relevant details. We can discuss there if there is a need for this?

@sonnens
Copy link
Contributor Author

sonnens commented Oct 25, 2023

filed an issue with more details about why we wanted this

#18937

Copy link
Contributor

@StephenWakely StephenWakely left a comment

Choose a reason for hiding this comment

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

We had a discussion around this change, and whilst we can see it would be useful for some - it is definitely not something that we want to have implemented all the time due to the overhead it introduces.

The way we would like to have this working is to change the headers config to allow for wildcards. You can use the glob crate to do the matching.

I'm not sure quite what the overhead will be of running the matching in glob. It may be worth detecting at load time if the header contains any wildcards - if it does use glob otherwise use == like it currently does.

This way, if you want all the headers you can specify headers: ["*"], and other users will be unaffected.

Possibly a little more involved that you initially anticipated, but this provides the best way forward for everyone. Let me know if you have any questions.

@sonnens
Copy link
Contributor Author

sonnens commented Nov 8, 2023

@StephenWakely & @neuronull Something like this look better?

src/sources/http_server.rs Outdated Show resolved Hide resolved
@sonnens
Copy link
Contributor Author

sonnens commented Nov 26, 2023

@neuronull Updated this PR, I replaced the extra field with an enum & a function to build a vector of it from a Vec. I think that should address the concerns about resource cost.

I also added a couple lines to the docs & the headers test, although I cannot for the life of me find the docs on how to actually run the test suite

@neuronull
Copy link
Contributor

Thanks for iterating on the solution @sonnens

although I cannot for the life of me find the docs on how to actually run the test suite

The most direct way is

cargo test --no-default-features -F sources-http_server sources::http_server

, it looks like the modified test case is failing.

You'll also want to run

make check-fmt
make check-clippy

The format lints can be fixed with cargo-fmt.

src/sources/http_server.rs Outdated Show resolved Hide resolved
src/sources/http_server.rs Outdated Show resolved Hide resolved
src/sources/http_server.rs Show resolved Hide resolved
src/sources/http_server.rs Outdated Show resolved Hide resolved
src/sources/http_server.rs Show resolved Hide resolved
@neuronull neuronull added the meta: awaiting author Pull requests that are awaiting their author. label Nov 27, 2023
@sonnens
Copy link
Contributor Author

sonnens commented Nov 30, 2023

@neuronull here you go. This should take care of those concerns. It'll bail on error now if glob::pattern fails , made the docs changes you requested, added a test for matching everything & fixed the tests which work now. In doing so, I had to double check with RFC2616 that header keys are case insensitive, but header values are sensitive, so I added a test for that as well.

Signed-off-by: Jesse Szwedko <[email protected]>
@jszwedko jszwedko requested review from a team as code owners December 1, 2023 19:19
@github-actions github-actions bot added the domain: external docs Anything related to Vector's external, public documentation label Dec 1, 2023
Copy link
Contributor

@urseberry urseberry left a comment

Choose a reason for hiding this comment

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

One non-blocking grammar nit.

src/sources/http_server.rs Outdated Show resolved Hide resolved
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.

We had just some small edit to the user facing docs and I added some code comments but otherwise this looks good to me.

@neuronull neuronull added this pull request to the merge queue Dec 1, 2023
Copy link

github-actions bot commented Dec 1, 2023

Regression Detector Results

Run ID: 3a9d86f1-c04b-4636-b4a9-42f7df1de8dc
Baseline: 6e9096e
Comparison: 35e7dc0
Total CPUs: 7

Explanation

A regression test is an A/B test of target performance in a repeatable rig, where "performance" is measured as "comparison variant minus baseline variant" for an optimization goal (e.g., ingress throughput). Due to intrinsic variability in measuring that goal, we can only estimate its mean value for each experiment; we report uncertainty in that value as a 90.00% confidence interval denoted "Δ mean % CI".

For each experiment, we decide whether a change in performance is a "regression" -- a change worth investigating further -- if all of the following criteria are true:

  1. Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.

  2. Its 90.00% confidence interval "Δ mean % CI" does not contain zero, indicating that if our statistical model is accurate, there is at least a 90.00% chance there is a difference in performance between baseline and comparison variants.

  3. Its configuration does not mark it "erratic".

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

Experiments that were not declared erratic but were detected as being so, coefficient of variation cutoff 0.10:

experiment goal Δ mean % Δ mean % CI confidence
http_to_http_acks ingress throughput +1.79 [+0.46, +3.12] 97.35%
fluent_elasticsearch ingress throughput +1.26 [+0.78, +1.74] 100.00%
file_to_blackhole egress throughput +0.25 [-2.05, +2.54] 14.12%
splunk_hec_route_s3 ingress throughput -0.83 [-1.34, -0.31] 99.20%

Fine details of change detection per experiment.

experiment goal Δ mean % Δ mean % CI confidence
http_to_http_acks ingress throughput +1.79 [+0.46, +3.12] 97.35%
fluent_elasticsearch ingress throughput +1.26 [+0.78, +1.74] 100.00%
otlp_http_to_blackhole ingress throughput +1.08 [+0.93, +1.24] 100.00%
datadog_agent_remap_datadog_logs ingress throughput +0.39 [+0.30, +0.48] 100.00%
file_to_blackhole egress throughput +0.25 [-2.05, +2.54] 14.12%
http_to_http_noack ingress throughput +0.12 [+0.03, +0.21] 97.05%
http_to_s3 ingress throughput +0.08 [-0.19, +0.35] 37.61%
http_to_http_json ingress throughput +0.01 [-0.06, +0.08] 21.02%
syslog_log2metric_humio_metrics ingress throughput +0.01 [-0.15, +0.16] 4.73%
splunk_hec_indexer_ack_blackhole ingress throughput +0.00 [-0.14, +0.14] 0.62%
splunk_hec_to_splunk_hec_logs_acks ingress throughput -0.00 [-0.14, +0.13] 3.65%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.04 [-0.16, +0.07] 47.22%
syslog_splunk_hec_logs ingress throughput -0.05 [-0.11, +0.02] 74.96%
enterprise_http_to_http ingress throughput -0.13 [-0.20, -0.05] 99.62%
socket_to_socket_blackhole ingress throughput -0.14 [-0.21, -0.07] 99.88%
syslog_regex_logs2metric_ddmetrics ingress throughput -0.15 [-0.24, -0.06] 99.17%
http_elasticsearch ingress throughput -0.31 [-0.37, -0.24] 100.00%
datadog_agent_remap_blackhole ingress throughput -0.33 [-0.42, -0.25] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput -0.51 [-0.59, -0.43] 100.00%
datadog_agent_remap_blackhole_acks ingress throughput -0.57 [-0.69, -0.44] 100.00%
splunk_hec_route_s3 ingress throughput -0.83 [-1.34, -0.31] 99.20%
syslog_loki ingress throughput -0.89 [-0.93, -0.84] 100.00%
otlp_grpc_to_blackhole ingress throughput -1.18 [-1.27, -1.09] 100.00%
http_text_to_http_json ingress throughput -1.45 [-1.59, -1.32] 100.00%
syslog_humio_logs ingress throughput -2.25 [-2.34, -2.17] 100.00%
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput -2.32 [-2.45, -2.19] 100.00%
syslog_log2metric_splunk_hec_metrics ingress throughput -2.45 [-2.59, -2.30] 100.00%

Copy link

github-actions bot commented Dec 1, 2023

Regression Detector Results

Run ID: 6c317e81-ee64-4af5-a943-b2a672d907c7
Baseline: 23d828a
Comparison: 9925d7b
Total CPUs: 7

Explanation

A regression test is an A/B test of target performance in a repeatable rig, where "performance" is measured as "comparison variant minus baseline variant" for an optimization goal (e.g., ingress throughput). Due to intrinsic variability in measuring that goal, we can only estimate its mean value for each experiment; we report uncertainty in that value as a 90.00% confidence interval denoted "Δ mean % CI".

For each experiment, we decide whether a change in performance is a "regression" -- a change worth investigating further -- if all of the following criteria are true:

  1. Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.

  2. Its 90.00% confidence interval "Δ mean % CI" does not contain zero, indicating that if our statistical model is accurate, there is at least a 90.00% chance there is a difference in performance between baseline and comparison variants.

  3. Its configuration does not mark it "erratic".

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

experiment goal Δ mean % Δ mean % CI confidence
syslog_log2metric_humio_metrics ingress throughput +5.54 [+5.40, +5.69] 100.00%

Experiments that were not declared erratic but were detected as being so, coefficient of variation cutoff 0.10:

experiment goal Δ mean % Δ mean % CI confidence
http_to_http_acks ingress throughput +1.96 [+0.64, +3.29] 98.53%
fluent_elasticsearch ingress throughput +0.82 [+0.35, +1.30] 99.56%
splunk_hec_route_s3 ingress throughput -0.00 [-0.51, +0.51] 0.07%
file_to_blackhole egress throughput -0.76 [-3.26, +1.74] 38.19%

Fine details of change detection per experiment.

experiment goal Δ mean % Δ mean % CI confidence
syslog_log2metric_humio_metrics ingress throughput +5.54 [+5.40, +5.69] 100.00%
http_to_http_acks ingress throughput +1.96 [+0.64, +3.29] 98.53%
otlp_http_to_blackhole ingress throughput +1.17 [+1.01, +1.33] 100.00%
fluent_elasticsearch ingress throughput +0.82 [+0.35, +1.30] 99.56%
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput +0.51 [+0.38, +0.64] 100.00%
socket_to_socket_blackhole ingress throughput +0.47 [+0.40, +0.54] 100.00%
datadog_agent_remap_blackhole_acks ingress throughput +0.42 [+0.33, +0.51] 100.00%
http_to_s3 ingress throughput +0.31 [+0.04, +0.59] 93.62%
otlp_grpc_to_blackhole ingress throughput +0.31 [+0.21, +0.41] 100.00%
http_to_http_noack ingress throughput +0.17 [+0.08, +0.26] 99.75%
syslog_splunk_hec_logs ingress throughput +0.16 [+0.09, +0.24] 99.97%
http_to_http_json ingress throughput +0.06 [-0.01, +0.14] 81.84%
splunk_hec_route_s3 ingress throughput -0.00 [-0.51, +0.51] 0.07%
splunk_hec_to_splunk_hec_logs_acks ingress throughput -0.00 [-0.14, +0.14] 0.64%
splunk_hec_indexer_ack_blackhole ingress throughput -0.00 [-0.14, +0.13] 4.25%
datadog_agent_remap_datadog_logs ingress throughput -0.01 [-0.11, +0.09] 11.77%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.04 [-0.15, +0.08] 42.43%
enterprise_http_to_http ingress throughput -0.11 [-0.18, -0.03] 98.09%
syslog_regex_logs2metric_ddmetrics ingress throughput -0.30 [-0.43, -0.17] 99.99%
datadog_agent_remap_datadog_logs_acks ingress throughput -0.61 [-0.68, -0.53] 100.00%
http_text_to_http_json ingress throughput -0.65 [-0.77, -0.53] 100.00%
syslog_humio_logs ingress throughput -0.68 [-0.76, -0.59] 100.00%
file_to_blackhole egress throughput -0.76 [-3.26, +1.74] 38.19%
syslog_log2metric_splunk_hec_metrics ingress throughput -0.99 [-1.13, -0.85] 100.00%
http_elasticsearch ingress throughput -1.44 [-1.52, -1.37] 100.00%
syslog_loki ingress throughput -1.95 [-2.01, -1.88] 100.00%
datadog_agent_remap_blackhole ingress throughput -1.97 [-2.07, -1.87] 100.00%

@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Dec 1, 2023
@neuronull
Copy link
Contributor

CI in the merge queue failed due to a too many requests error returned from docker.

Take 2

@neuronull neuronull added this pull request to the merge queue Dec 1, 2023
Copy link

github-actions bot commented Dec 1, 2023

Regression Detector Results

Run ID: 8c3b1915-8aae-4b65-a78e-9bba6df0ec21
Baseline: 79e4bdf
Comparison: 839f7b4
Total CPUs: 7

Explanation

A regression test is an A/B test of target performance in a repeatable rig, where "performance" is measured as "comparison variant minus baseline variant" for an optimization goal (e.g., ingress throughput). Due to intrinsic variability in measuring that goal, we can only estimate its mean value for each experiment; we report uncertainty in that value as a 90.00% confidence interval denoted "Δ mean % CI".

For each experiment, we decide whether a change in performance is a "regression" -- a change worth investigating further -- if all of the following criteria are true:

  1. Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.

  2. Its 90.00% confidence interval "Δ mean % CI" does not contain zero, indicating that if our statistical model is accurate, there is at least a 90.00% chance there is a difference in performance between baseline and comparison variants.

  3. Its configuration does not mark it "erratic".

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

Experiments that were not declared erratic but were detected as being so, coefficient of variation cutoff 0.10:

experiment goal Δ mean % Δ mean % CI confidence
splunk_hec_route_s3 ingress throughput +2.34 [+1.82, +2.87] 100.00%
file_to_blackhole egress throughput +0.43 [-2.09, +2.96] 22.33%
http_to_http_acks ingress throughput -0.16 [-1.47, +1.15] 16.05%
fluent_elasticsearch ingress throughput -2.98 [-3.45, -2.51] 100.00%

Fine details of change detection per experiment.

experiment goal Δ mean % Δ mean % CI confidence
splunk_hec_route_s3 ingress throughput +2.34 [+1.82, +2.87] 100.00%
syslog_humio_logs ingress throughput +1.04 [+0.95, +1.13] 100.00%
socket_to_socket_blackhole ingress throughput +0.90 [+0.83, +0.97] 100.00%
http_text_to_http_json ingress throughput +0.75 [+0.62, +0.88] 100.00%
syslog_log2metric_splunk_hec_metrics ingress throughput +0.68 [+0.53, +0.83] 100.00%
otlp_http_to_blackhole ingress throughput +0.63 [+0.48, +0.78] 100.00%
syslog_log2metric_humio_metrics ingress throughput +0.57 [+0.43, +0.71] 100.00%
http_elasticsearch ingress throughput +0.49 [+0.42, +0.56] 100.00%
file_to_blackhole egress throughput +0.43 [-2.09, +2.96] 22.33%
http_to_s3 ingress throughput +0.21 [-0.07, +0.48] 78.42%
datadog_agent_remap_blackhole ingress throughput +0.17 [+0.09, +0.26] 99.91%
http_to_http_noack ingress throughput +0.11 [+0.00, +0.22] 90.01%
http_to_http_json ingress throughput +0.02 [-0.05, +0.09] 38.33%
splunk_hec_indexer_ack_blackhole ingress throughput -0.00 [-0.14, +0.14] 0.15%
splunk_hec_to_splunk_hec_logs_acks ingress throughput -0.00 [-0.14, +0.14] 2.99%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.03 [-0.14, +0.08] 31.64%
enterprise_http_to_http ingress throughput -0.05 [-0.10, +0.00] 89.30%
syslog_loki ingress throughput -0.09 [-0.16, -0.03] 99.05%
http_to_http_acks ingress throughput -0.16 [-1.47, +1.15] 16.05%
datadog_agent_remap_blackhole_acks ingress throughput -0.18 [-0.27, -0.08] 99.68%
datadog_agent_remap_datadog_logs ingress throughput -0.40 [-0.50, -0.30] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput -0.73 [-0.81, -0.65] 100.00%
otlp_grpc_to_blackhole ingress throughput -0.83 [-0.92, -0.73] 100.00%
syslog_splunk_hec_logs ingress throughput -1.76 [-1.81, -1.70] 100.00%
syslog_regex_logs2metric_ddmetrics ingress throughput -2.82 [-2.95, -2.69] 100.00%
fluent_elasticsearch ingress throughput -2.98 [-3.45, -2.51] 100.00%

@neuronull neuronull removed this pull request from the merge queue due to a manual request Dec 2, 2023
@neuronull neuronull added this pull request to the merge queue Dec 4, 2023
Copy link

github-actions bot commented Dec 4, 2023

Regression Detector Results

Run ID: b6985e6f-ed10-4f20-847f-ee1946afe760
Baseline: 9b814f1
Comparison: da0a9e3
Total CPUs: 7

Explanation

A regression test is an A/B test of target performance in a repeatable rig, where "performance" is measured as "comparison variant minus baseline variant" for an optimization goal (e.g., ingress throughput). Due to intrinsic variability in measuring that goal, we can only estimate its mean value for each experiment; we report uncertainty in that value as a 90.00% confidence interval denoted "Δ mean % CI".

For each experiment, we decide whether a change in performance is a "regression" -- a change worth investigating further -- if all of the following criteria are true:

  1. Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.

  2. Its 90.00% confidence interval "Δ mean % CI" does not contain zero, indicating that if our statistical model is accurate, there is at least a 90.00% chance there is a difference in performance between baseline and comparison variants.

  3. Its configuration does not mark it "erratic".

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

Experiments that were not declared erratic but were detected as being so, coefficient of variation cutoff 0.10:

experiment goal Δ mean % Δ mean % CI confidence
file_to_blackhole egress throughput +3.14 [+0.60, +5.68] 95.80%
http_to_http_acks ingress throughput +0.54 [-0.78, +1.86] 50.18%
splunk_hec_route_s3 ingress throughput -0.45 [-0.96, +0.06] 85.20%
fluent_elasticsearch ingress throughput -1.78 [-2.25, -1.31] 100.00%

Fine details of change detection per experiment.

experiment goal Δ mean % Δ mean % CI confidence
file_to_blackhole egress throughput +3.14 [+0.60, +5.68] 95.80%
http_elasticsearch ingress throughput +1.40 [+1.33, +1.47] 100.00%
syslog_regex_logs2metric_ddmetrics ingress throughput +1.18 [+1.04, +1.33] 100.00%
otlp_grpc_to_blackhole ingress throughput +1.01 [+0.91, +1.11] 100.00%
syslog_log2metric_humio_metrics ingress throughput +0.94 [+0.79, +1.09] 100.00%
http_to_http_acks ingress throughput +0.54 [-0.78, +1.86] 50.18%
http_to_s3 ingress throughput +0.39 [+0.11, +0.67] 97.79%
http_text_to_http_json ingress throughput +0.21 [+0.07, +0.35] 98.77%
syslog_log2metric_splunk_hec_metrics ingress throughput +0.21 [+0.07, +0.34] 98.71%
datadog_agent_remap_datadog_logs ingress throughput +0.18 [+0.09, +0.28] 99.88%
syslog_loki ingress throughput +0.18 [+0.11, +0.25] 100.00%
http_to_http_noack ingress throughput +0.14 [+0.04, +0.24] 98.29%
http_to_http_json ingress throughput +0.01 [-0.06, +0.08] 24.59%
splunk_hec_indexer_ack_blackhole ingress throughput +0.01 [-0.13, +0.15] 10.07%
splunk_hec_to_splunk_hec_logs_acks ingress throughput +0.00 [-0.14, +0.14] 0.55%
syslog_splunk_hec_logs ingress throughput -0.02 [-0.10, +0.05] 38.67%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.02 [-0.14, +0.09] 28.11%
syslog_humio_logs ingress throughput -0.09 [-0.18, -0.01] 93.47%
enterprise_http_to_http ingress throughput -0.10 [-0.18, -0.02] 96.05%
datadog_agent_remap_blackhole_acks ingress throughput -0.23 [-0.32, -0.13] 99.99%
splunk_hec_route_s3 ingress throughput -0.45 [-0.96, +0.06] 85.20%
datadog_agent_remap_datadog_logs_acks ingress throughput -0.50 [-0.58, -0.42] 100.00%
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput -0.71 [-0.81, -0.61] 100.00%
datadog_agent_remap_blackhole ingress throughput -0.82 [-0.91, -0.74] 100.00%
socket_to_socket_blackhole ingress throughput -1.31 [-1.37, -1.24] 100.00%
fluent_elasticsearch ingress throughput -1.78 [-2.25, -1.31] 100.00%
otlp_http_to_blackhole ingress throughput -1.98 [-2.14, -1.83] 100.00%

Copy link

github-actions bot commented Dec 4, 2023

Regression Detector Results

Run ID: 54209fdd-ba45-4242-82c5-f94424a0cf19
Baseline: 5b89574
Comparison: 042b544
Total CPUs: 7

Explanation

A regression test is an A/B test of target performance in a repeatable rig, where "performance" is measured as "comparison variant minus baseline variant" for an optimization goal (e.g., ingress throughput). Due to intrinsic variability in measuring that goal, we can only estimate its mean value for each experiment; we report uncertainty in that value as a 90.00% confidence interval denoted "Δ mean % CI".

For each experiment, we decide whether a change in performance is a "regression" -- a change worth investigating further -- if all of the following criteria are true:

  1. Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.

  2. Its 90.00% confidence interval "Δ mean % CI" does not contain zero, indicating that if our statistical model is accurate, there is at least a 90.00% chance there is a difference in performance between baseline and comparison variants.

  3. Its configuration does not mark it "erratic".

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

experiment goal Δ mean % Δ mean % CI confidence
otlp_http_to_blackhole ingress throughput +6.32 [+6.17, +6.47] 100.00%

Experiments that were not declared erratic but were detected as being so, coefficient of variation cutoff 0.10:

experiment goal Δ mean % Δ mean % CI confidence
fluent_elasticsearch ingress throughput +1.23 [+0.76, +1.70] 100.00%
file_to_blackhole egress throughput +0.98 [-1.48, +3.44] 48.78%
http_to_http_acks ingress throughput -0.21 [-1.52, +1.10] 20.53%
splunk_hec_route_s3 ingress throughput -0.94 [-1.46, -0.41] 99.67%

Fine details of change detection per experiment.

experiment goal Δ mean % Δ mean % CI confidence
otlp_http_to_blackhole ingress throughput +6.32 [+6.17, +6.47] 100.00%
socket_to_socket_blackhole ingress throughput +2.23 [+2.14, +2.32] 100.00%
fluent_elasticsearch ingress throughput +1.23 [+0.76, +1.70] 100.00%
syslog_humio_logs ingress throughput +1.12 [+1.01, +1.23] 100.00%
file_to_blackhole egress throughput +0.98 [-1.48, +3.44] 48.78%
syslog_log2metric_splunk_hec_metrics ingress throughput +0.94 [+0.79, +1.10] 100.00%
syslog_loki ingress throughput +0.80 [+0.75, +0.85] 100.00%
datadog_agent_remap_blackhole ingress throughput +0.59 [+0.49, +0.69] 100.00%
datadog_agent_remap_datadog_logs ingress throughput +0.41 [+0.31, +0.50] 100.00%
syslog_log2metric_humio_metrics ingress throughput +0.38 [+0.23, +0.52] 100.00%
syslog_splunk_hec_logs ingress throughput +0.20 [+0.13, +0.28] 100.00%
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput +0.18 [+0.04, +0.32] 96.81%
http_to_http_noack ingress throughput +0.17 [+0.07, +0.28] 99.47%
http_to_s3 ingress throughput +0.08 [-0.20, +0.37] 37.74%
http_to_http_json ingress throughput +0.04 [-0.04, +0.11] 60.75%
splunk_hec_indexer_ack_blackhole ingress throughput +0.00 [-0.14, +0.14] 2.83%
splunk_hec_to_splunk_hec_logs_acks ingress throughput +0.00 [-0.14, +0.14] 0.51%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.02 [-0.13, +0.10] 19.19%
enterprise_http_to_http ingress throughput -0.13 [-0.21, -0.06] 99.66%
otlp_grpc_to_blackhole ingress throughput -0.15 [-0.24, -0.06] 99.28%
http_to_http_acks ingress throughput -0.21 [-1.52, +1.10] 20.53%
http_elasticsearch ingress throughput -0.46 [-0.52, -0.40] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput -0.57 [-0.65, -0.48] 100.00%
syslog_regex_logs2metric_ddmetrics ingress throughput -0.84 [-1.00, -0.69] 100.00%
splunk_hec_route_s3 ingress throughput -0.94 [-1.46, -0.41] 99.67%
datadog_agent_remap_blackhole_acks ingress throughput -0.98 [-1.07, -0.89] 100.00%
http_text_to_http_json ingress throughput -1.22 [-1.35, -1.09] 100.00%

@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Dec 4, 2023
@neuronull
Copy link
Contributor

This was kicked out of the merge queue due to a known issue that we hope to resolve soon- there was a performance

improvement

on one of the performance regression test cases. This incorrectly was perceived as a failure.

@neuronull neuronull added this pull request to the merge queue Dec 4, 2023
Copy link

github-actions bot commented Dec 5, 2023

Regression Detector Results

Run ID: d572889c-f81a-4cb2-85f1-8eb8eb48c7c4
Baseline: 17b672a
Comparison: 8f16a00
Total CPUs: 7

Explanation

A regression test is an A/B test of target performance in a repeatable rig, where "performance" is measured as "comparison variant minus baseline variant" for an optimization goal (e.g., ingress throughput). Due to intrinsic variability in measuring that goal, we can only estimate its mean value for each experiment; we report uncertainty in that value as a 90.00% confidence interval denoted "Δ mean % CI".

For each experiment, we decide whether a change in performance is a "regression" -- a change worth investigating further -- if all of the following criteria are true:

  1. Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.

  2. Its 90.00% confidence interval "Δ mean % CI" does not contain zero, indicating that if our statistical model is accurate, there is at least a 90.00% chance there is a difference in performance between baseline and comparison variants.

  3. Its configuration does not mark it "erratic".

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

Experiments that were not declared erratic but were detected as being so, coefficient of variation cutoff 0.10:

experiment goal Δ mean % Δ mean % CI confidence
fluent_elasticsearch ingress throughput +1.27 [+0.80, +1.75] 100.00%
splunk_hec_route_s3 ingress throughput +0.50 [-0.02, +1.01] 88.72%
file_to_blackhole egress throughput -1.09 [-3.70, +1.52] 50.82%
http_to_http_acks ingress throughput -1.66 [-2.95, -0.37] 96.62%

Fine details of change detection per experiment.

experiment goal Δ mean % Δ mean % CI confidence
syslog_log2metric_humio_metrics ingress throughput +1.80 [+1.64, +1.97] 100.00%
fluent_elasticsearch ingress throughput +1.27 [+0.80, +1.75] 100.00%
splunk_hec_route_s3 ingress throughput +0.50 [-0.02, +1.01] 88.72%
syslog_splunk_hec_logs ingress throughput +0.48 [+0.42, +0.53] 100.00%
syslog_loki ingress throughput +0.42 [+0.36, +0.47] 100.00%
syslog_humio_logs ingress throughput +0.41 [+0.32, +0.50] 100.00%
http_elasticsearch ingress throughput +0.36 [+0.30, +0.42] 100.00%
datadog_agent_remap_blackhole_acks ingress throughput +0.23 [+0.14, +0.33] 100.00%
http_to_http_noack ingress throughput +0.10 [+0.01, +0.19] 93.61%
otlp_grpc_to_blackhole ingress throughput +0.02 [-0.08, +0.12] 21.73%
splunk_hec_indexer_ack_blackhole ingress throughput +0.00 [-0.14, +0.14] 2.63%
splunk_hec_to_splunk_hec_logs_acks ingress throughput +0.00 [-0.14, +0.14] 1.32%
http_to_http_json ingress throughput -0.00 [-0.07, +0.07] 0.10%
otlp_http_to_blackhole ingress throughput -0.01 [-0.17, +0.14] 9.67%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.06 [-0.17, +0.05] 61.07%
datadog_agent_remap_blackhole ingress throughput -0.12 [-0.22, -0.02] 94.92%
http_to_s3 ingress throughput -0.19 [-0.47, +0.09] 73.28%
enterprise_http_to_http ingress throughput -0.19 [-0.29, -0.10] 99.90%
http_text_to_http_json ingress throughput -0.31 [-0.46, -0.16] 99.95%
datadog_agent_remap_datadog_logs ingress throughput -0.35 [-0.46, -0.25] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput -0.67 [-0.75, -0.59] 100.00%
syslog_regex_logs2metric_ddmetrics ingress throughput -0.91 [-1.04, -0.79] 100.00%
socket_to_socket_blackhole ingress throughput -1.00 [-1.07, -0.93] 100.00%
syslog_log2metric_splunk_hec_metrics ingress throughput -1.06 [-1.20, -0.91] 100.00%
file_to_blackhole egress throughput -1.09 [-3.70, +1.52] 50.82%
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput -1.15 [-1.27, -1.02] 100.00%
http_to_http_acks ingress throughput -1.66 [-2.95, -0.37] 96.62%

Merged via the queue into vectordotdev:master with commit 8f16a00 Dec 5, 2023
39 checks passed
@sonnens sonnens deleted the httpserver_meta branch December 5, 2023 21:15
@neuronull
Copy link
Contributor

Thanks for the contribution @sonnens !

aholmberg pushed a commit to aholmberg/vector that referenced this pull request Feb 14, 2024
…ectordotdev#18922)

* feat(http_server source): add all headers to the namespace metadata

* feat(http_server source): allow wildcard matching in headers

* style: whitespace typo

* rework header glob matching, add docs and tests

* examples, docs, tests, error on misconfiguration

* fmt & clippy cleanup

* Generate docs

Signed-off-by: Jesse Szwedko <[email protected]>

* docs grammar adjustment

* add some code docs

Ref: LOG-19103

---------

Signed-off-by: Jesse Szwedko <[email protected]>
Co-authored-by: Jesse Szwedko <[email protected]>
Co-authored-by: neuronull <[email protected]>
aholmberg pushed a commit to aholmberg/vector that referenced this pull request Feb 14, 2024
# [3.2.0](answerbook/vector@v3.1.3...v3.2.0) (2024-01-24)

### Bug Fixes

* **sources**: `http_server` is not saving query params as key/val [733f3a9](answerbook/vector@733f3a9) - Darin Spivey [LOG-19104](https://logdna.atlassian.net/browse/LOG-19104)

### Features

* **http_server source**: add all headers to the namespace metadata (vectordotdev#18922) [3772b19](answerbook/vector@3772b19) - Darin Spivey [LOG-19103](https://logdna.atlassian.net/browse/LOG-19103)
* **sources**: `http_server` accepts query parameter wildcards [6627a95](answerbook/vector@6627a95) - Darin Spivey [LOG-19105](https://logdna.atlassian.net/browse/LOG-19105)

### Miscellaneous

* Merge pull request vectordotdev#403 from answerbook/darinspivey/LOG-19103 [896eaed](answerbook/vector@896eaed) - GitHub [LOG-19103](https://logdna.atlassian.net/browse/LOG-19103)
AndrooTheChen pushed a commit to discord/vector that referenced this pull request Sep 23, 2024
…ectordotdev#18922)

* feat(http_server source): add all headers to the namespace metadata

* feat(http_server source): allow wildcard matching in headers

* style: whitespace typo

* rework header glob matching, add docs and tests

* examples, docs, tests, error on misconfiguration

* fmt & clippy cleanup

* Generate docs

Signed-off-by: Jesse Szwedko <[email protected]>

* docs grammar adjustment

* add some code docs

---------

Signed-off-by: Jesse Szwedko <[email protected]>
Co-authored-by: Jesse Szwedko <[email protected]>
Co-authored-by: neuronull <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain: external docs Anything related to Vector's external, public documentation domain: sources Anything related to the Vector's sources source: http_server Anything `http_server` source related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants