Skip to content

enhancement(datadog service): Add datadog global config options#18929

Merged
StephenWakely merged 31 commits intomasterfrom
OPW-43/dd_global
Dec 5, 2023
Merged

enhancement(datadog service): Add datadog global config options#18929
StephenWakely merged 31 commits intomasterfrom
OPW-43/dd_global

Conversation

@StephenWakely
Copy link
Contributor

@StephenWakely StephenWakely commented Oct 25, 2023

OPW-43

This adds a global Datadog section to the configuration which then applies as defaults to the Datadog logs, metrics and traces sink.

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
@StephenWakely StephenWakely requested review from a team as code owners October 25, 2023 14:39
@StephenWakely StephenWakely requested review from a team October 25, 2023 14:39
@netlify
Copy link

netlify bot commented Oct 25, 2023

Deploy Preview for vector-project ready!

Name Link
🔨 Latest commit 53c581b
🔍 Latest deploy log https://app.netlify.com/sites/vector-project/deploys/653ba61529acfa0008e5836c
😎 Deploy Preview https://deploy-preview-18929--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 configuration.

@netlify
Copy link

netlify bot commented Oct 25, 2023

Deploy Preview for vrl-playground ready!

Name Link
🔨 Latest commit 53c581b
🔍 Latest deploy log https://app.netlify.com/sites/vrl-playground/deploys/653ba615136c4e0008d4b3ba
😎 Deploy Preview https://deploy-preview-18929--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 domain: topology Anything related to Vector's topology code domain: sinks Anything related to the Vector's sinks domain: external docs Anything related to Vector's external, public documentation labels Oct 25, 2023
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
@datadog-vectordotdev
Copy link

datadog-vectordotdev bot commented Oct 25, 2023

Datadog Report

Branch report: OPW-43/dd_global
Commit report: 0f54a1e

vector: 0 Failed, 0 New Flaky, 2222 Passed, 0 Skipped, 27m 24.7s Wall Time

@dsmith3197
Copy link
Contributor

Also note that I created #18940 to clean up some of the existing config options.

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Copy link
Contributor

@buraizu buraizu left a comment

Choose a reason for hiding this comment

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

Suggesting a couple of edits to the new content

Copy link
Member

@bruceg bruceg left a comment

Choose a reason for hiding this comment

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

A lot of quibbling over naming and suggestions for shared helpers in my comments, but the approach seems reasonable. In general, I would like to see two things:

  1. Keep the implementation details of the context object (i.e. the use of an anymap) within the context object type wrapper.
  2. Rename "extra" to something more specific. That is, the term "context" already implies it informs something else, so it is already "extra". Maybe it is app context given where it is first found?

Feel free to argue why it should stay the same, though.

Comment on lines +14 to +17
#[derive(Clone)]
pub struct ExtraContext {
context: Arc<Map<dyn Any + Send + Sync>>,
}
Copy link
Member

Choose a reason for hiding this comment

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

This looks like more of a newtype pattern than a structure of values, so I would suggest phrasing it as such:

Suggested change
#[derive(Clone)]
pub struct ExtraContext {
context: Arc<Map<dyn Any + Send + Sync>>,
}
pub struct ExtraContext(Arc<Map<dyn Any + Send + Sync>>);

I'm also not excited about the type (shared any map) being named for its usage point (extra app context), but this is all more bikeshedding than anything.

Having said that, I think the choice of an anymap here is a great way of allowing this to be extensible without adding generics to any of the types.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm also not excited about the type (shared any map) being named for its usage point (extra app context), but this is all more bikeshedding than anything.

I'm not quite sure what you mean.. Can you expound?

Copy link
Member

Choose a reason for hiding this comment

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

The type is named ExtraContext. The whole name of the type is an indication of where it is used rather than what it contains. That is, this shared any-map is used as a context field that is extraneous to other application data. The type itself is not limited to being "extra context" and that term describes little about what it actually is and what range of operations can be done on it.

Anyways, like I said, more bikeshedding than anything on this point.

Comment on lines +544 to +550
let mut context = anymap::Map::new();
context.insert(datadog::Options {
api_key: Some("global-key".to_string().into()),
..Default::default()
});
let cx = SinkContext {
extra_context: ExtraContext::new(context),
Copy link
Member

Choose a reason for hiding this comment

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

This pattern seems awkward, and seems a good motivator to have the type wrapper do something like:

Suggested change
let mut context = anymap::Map::new();
context.insert(datadog::Options {
api_key: Some("global-key".to_string().into()),
..Default::default()
});
let cx = SinkContext {
extra_context: ExtraContext::new(context),
let extra_context = ExtraContext::single_value(datadog::Options {
api_key: Some("global-key".to_string().into()),
..Default::default()
});
let cx = SinkContext {
extra_context,

That is, it would be good to avoid seeing the anymap type outside of the context object wrapper.

Copy link
Contributor

Choose a reason for hiding this comment

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

@StephenWakely, I think you still need to update the above now that you've implemented ExtraContext::single_value 🙂

#[derive(Clone, Debug, Default)]
#[serde(deny_unknown_fields)]
pub struct DatadogCommonConfig {
pub struct LocalDatadogCommonConfig {
Copy link
Member

Choose a reason for hiding this comment

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

More bikeshedding, I find it ironic that the structure that is shared across multiple components is now called "local". Since the other DatadogCommonConfig is not something that is "configured" the way this one is, maybe it could be DatadogCommonSettings or even just DatadogCommon.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I do still prefer LocalDatadogCommonConfig because we apply the global options to create the DatadogCommonConfig - implying the combination of Local and Global to create the definitive.. If not Local then perhaps something else closely related?

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
@StephenWakely StephenWakely requested a review from bruceg November 27, 2023 15:19
@datadog-vectordotdev
Copy link

datadog-vectordotdev bot commented Nov 27, 2023

Datadog Report

Branch report: OPW-43/dd_global
Commit report: f4d6761

vector: 0 Failed, 0 New Flaky, 2251 Passed, 0 Skipped, 31m 10.12s Wall Time

Copy link
Contributor

@dsmith3197 dsmith3197 left a comment

Choose a reason for hiding this comment

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

Thanks for adding the extra tests! This looks good to me. Left some trivial comments / suggested changes.

Comment on lines +544 to +550
let mut context = anymap::Map::new();
context.insert(datadog::Options {
api_key: Some("global-key".to_string().into()),
..Default::default()
});
let cx = SinkContext {
extra_context: ExtraContext::new(context),
Copy link
Contributor

Choose a reason for hiding this comment

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

@StephenWakely, I think you still need to update the above now that you've implemented ExtraContext::single_value 🙂

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
@StephenWakely StephenWakely added this pull request to the merge queue Nov 29, 2023
@github-actions
Copy link

Regression Detector Results

Run ID: 445b2d22-ae6c-4804-aea7-127965eca4d0
Baseline: b58b0d4
Comparison: f276d02
Total vector CPUs: 7

Explanation

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

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

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

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

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

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

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

Fine details of change detection per experiment.
experiment goal Δ mean % Δ mean % CI confidence
socket_to_socket_blackhole ingress throughput +2.62 [+2.53, +2.70] 100.00%
syslog_log2metric_humio_metrics ingress throughput +1.35 [+1.22, +1.48] 100.00%
http_text_to_http_json ingress throughput +1.31 [+1.18, +1.43] 100.00%
syslog_regex_logs2metric_ddmetrics ingress throughput +1.19 [+1.11, +1.28] 100.00%
otlp_grpc_to_blackhole ingress throughput +1.18 [+1.09, +1.28] 100.00%
file_to_blackhole egress throughput +1.15 [-1.20, +3.51] 58.01%
http_elasticsearch ingress throughput +1.13 [+1.07, +1.20] 100.00%
otlp_http_to_blackhole ingress throughput +0.98 [+0.82, +1.13] 100.00%
syslog_splunk_hec_logs ingress throughput +0.70 [+0.66, +0.75] 100.00%
syslog_log2metric_splunk_hec_metrics ingress throughput +0.44 [+0.30, +0.57] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput +0.40 [+0.33, +0.48] 100.00%
datadog_agent_remap_blackhole_acks ingress throughput +0.34 [+0.25, +0.42] 100.00%
syslog_loki ingress throughput +0.31 [+0.25, +0.37] 100.00%
datadog_agent_remap_datadog_logs ingress throughput +0.24 [+0.14, +0.33] 100.00%
http_to_s3 ingress throughput +0.13 [-0.14, +0.40] 56.30%
http_to_http_noack ingress throughput +0.10 [+0.01, +0.19] 93.13%
splunk_hec_indexer_ack_blackhole ingress throughput +0.00 [-0.13, +0.14] 1.94%
splunk_hec_to_splunk_hec_logs_acks ingress throughput -0.00 [-0.14, +0.14] 0.11%
http_to_http_json ingress throughput -0.00 [-0.07, +0.07] 1.09%
syslog_humio_logs ingress throughput -0.01 [-0.10, +0.08] 13.36%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.04 [-0.15, +0.08] 39.69%
fluent_elasticsearch ingress throughput -0.07 [-0.53, +0.38] 20.66%
enterprise_http_to_http ingress throughput -0.13 [-0.22, -0.05] 99.08%
splunk_hec_route_s3 ingress throughput -0.14 [-0.65, +0.38] 33.73%
datadog_agent_remap_blackhole ingress throughput -0.58 [-0.67, -0.50] 100.00%
http_to_http_acks ingress throughput -1.14 [-2.43, +0.16] 85.04%

@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Nov 29, 2023
@StephenWakely StephenWakely added this pull request to the merge queue Nov 30, 2023
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 30, 2023
@StephenWakely StephenWakely added this pull request to the merge queue Nov 30, 2023
@github-actions
Copy link

Regression Detector Results

Run ID: a148dbda-5dc6-445e-b070-d1d96872fc32
Baseline: 6361cad
Comparison: 7b15d67
Total vector CPUs: 7

Explanation

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

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

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

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

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

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

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

Fine details of change detection per experiment.
experiment goal Δ mean % Δ mean % CI confidence
syslog_log2metric_humio_metrics ingress throughput +4.02 [+3.89, +4.16] 100.00%
socket_to_socket_blackhole ingress throughput +1.64 [+1.58, +1.71] 100.00%
syslog_loki ingress throughput +1.36 [+1.29, +1.43] 100.00%
http_elasticsearch ingress throughput +1.27 [+1.21, +1.33] 100.00%
splunk_hec_route_s3 ingress throughput +1.23 [+0.71, +1.76] 99.99%
syslog_humio_logs ingress throughput +0.95 [+0.85, +1.06] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput +0.84 [+0.76, +0.92] 100.00%
syslog_splunk_hec_logs ingress throughput +0.76 [+0.69, +0.83] 100.00%
otlp_http_to_blackhole ingress throughput +0.72 [+0.57, +0.87] 100.00%
otlp_grpc_to_blackhole ingress throughput +0.39 [+0.30, +0.48] 100.00%
http_to_http_acks ingress throughput +0.31 [-1.00, +1.61] 30.30%
http_to_http_noack ingress throughput +0.13 [+0.03, +0.22] 97.21%
http_to_s3 ingress throughput +0.11 [-0.16, +0.39] 49.61%
http_to_http_json ingress throughput +0.06 [-0.01, +0.14] 81.84%
splunk_hec_indexer_ack_blackhole ingress throughput +0.00 [-0.13, +0.13] 0.48%
splunk_hec_to_splunk_hec_logs_acks ingress throughput -0.00 [-0.14, +0.14] 2.28%
enterprise_http_to_http ingress throughput -0.04 [-0.13, +0.04] 57.84%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.08 [-0.19, +0.03] 74.30%
syslog_regex_logs2metric_ddmetrics ingress throughput -0.11 [-0.24, +0.02] 82.86%
datadog_agent_remap_datadog_logs ingress throughput -0.27 [-0.37, -0.17] 100.00%
file_to_blackhole egress throughput -0.56 [-3.10, +1.97] 28.57%
fluent_elasticsearch ingress throughput -0.62 [-1.09, -0.16] 97.42%
http_text_to_http_json ingress throughput -0.66 [-0.80, -0.52] 100.00%
datadog_agent_remap_blackhole ingress throughput -0.85 [-0.96, -0.74] 100.00%
datadog_agent_remap_blackhole_acks ingress throughput -1.05 [-1.15, -0.94] 100.00%
syslog_log2metric_splunk_hec_metrics ingress throughput -1.07 [-1.22, -0.92] 100.00%

@github-actions
Copy link

Regression Detector Results

Run ID: 25d3e9aa-b85b-4c79-818d-0baabd5f7878
Baseline: 92d4102
Comparison: 8327677
Total vector CPUs: 7

Explanation

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

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

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

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

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

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

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

experiment goal Δ mean % confidence
syslog_regex_logs2metric_ddmetrics ingress throughput +5.23 100.00%
Fine details of change detection per experiment.
experiment goal Δ mean % Δ mean % CI confidence
syslog_regex_logs2metric_ddmetrics ingress throughput +5.23 [+5.10, +5.36] 100.00%
socket_to_socket_blackhole ingress throughput +1.45 [+1.36, +1.54] 100.00%
syslog_splunk_hec_logs ingress throughput +1.36 [+1.30, +1.41] 100.00%
syslog_log2metric_humio_metrics ingress throughput +1.35 [+1.18, +1.52] 100.00%
syslog_loki ingress throughput +1.14 [+1.06, +1.22] 100.00%
syslog_humio_logs ingress throughput +1.05 [+0.95, +1.16] 100.00%
http_to_s3 ingress throughput +0.67 [+0.39, +0.95] 99.99%
http_elasticsearch ingress throughput +0.34 [+0.27, +0.42] 100.00%
http_text_to_http_json ingress throughput +0.17 [+0.04, +0.31] 96.59%
http_to_http_noack ingress throughput +0.16 [+0.08, +0.25] 99.75%
fluent_elasticsearch ingress throughput +0.16 [-0.30, +0.62] 42.82%
http_to_http_json ingress throughput +0.04 [-0.03, +0.12] 64.12%
splunk_hec_to_splunk_hec_logs_acks ingress throughput -0.00 [-0.14, +0.14] 0.53%
splunk_hec_indexer_ack_blackhole ingress throughput -0.00 [-0.13, +0.13] 1.76%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.01 [-0.12, +0.10] 8.72%
otlp_grpc_to_blackhole ingress throughput -0.07 [-0.16, +0.02] 80.82%
enterprise_http_to_http ingress throughput -0.07 [-0.13, -0.02] 96.08%
otlp_http_to_blackhole ingress throughput -0.10 [-0.25, +0.06] 69.38%
datadog_agent_remap_datadog_logs ingress throughput -0.10 [-0.20, -0.00] 91.57%
datadog_agent_remap_blackhole_acks ingress throughput -0.35 [-0.46, -0.24] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput -0.46 [-0.56, -0.37] 100.00%
http_to_http_acks ingress throughput -0.77 [-2.06, +0.53] 66.70%
syslog_log2metric_splunk_hec_metrics ingress throughput -0.79 [-0.94, -0.65] 100.00%
splunk_hec_route_s3 ingress throughput -1.65 [-2.17, -1.14] 100.00%
datadog_agent_remap_blackhole ingress throughput -1.67 [-1.78, -1.57] 100.00%
file_to_blackhole egress throughput -2.89 [-5.35, -0.43] 94.64%

@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 30, 2023
Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
@StephenWakely StephenWakely added this pull request to the merge queue Dec 4, 2023
@github-actions
Copy link

github-actions bot commented Dec 4, 2023

Regression Detector Results

Run ID: 9d9951ce-ba7c-4619-a2ab-7229c4bdc93e
Baseline: a634a2f
Comparison: b7a88da
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 +2.84 [+0.29, +5.40] 93.25%
fluent_elasticsearch ingress throughput +1.49 [+1.01, +1.98] 100.00%
http_to_http_acks ingress throughput +1.37 [+0.05, +2.68] 91.34%
splunk_hec_route_s3 ingress throughput -0.06 [-0.58, +0.45] 15.96%

Fine details of change detection per experiment.

experiment goal Δ mean % Δ mean % CI confidence
file_to_blackhole egress throughput +2.84 [+0.29, +5.40] 93.25%
syslog_humio_logs ingress throughput +2.10 [+2.00, +2.20] 100.00%
otlp_http_to_blackhole ingress throughput +1.62 [+1.45, +1.78] 100.00%
fluent_elasticsearch ingress throughput +1.49 [+1.01, +1.98] 100.00%
http_to_http_acks ingress throughput +1.37 [+0.05, +2.68] 91.34%
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput +1.19 [+1.07, +1.31] 100.00%
syslog_loki ingress throughput +1.02 [+0.97, +1.07] 100.00%
socket_to_socket_blackhole ingress throughput +0.75 [+0.67, +0.83] 100.00%
syslog_log2metric_humio_metrics ingress throughput +0.73 [+0.57, +0.88] 100.00%
syslog_splunk_hec_logs ingress throughput +0.38 [+0.32, +0.45] 100.00%
http_to_http_noack ingress throughput +0.16 [+0.08, +0.24] 99.91%
syslog_log2metric_splunk_hec_metrics ingress throughput +0.06 [-0.07, +0.20] 56.69%
http_to_http_json ingress throughput +0.03 [-0.05, +0.10] 44.08%
http_elasticsearch ingress throughput +0.01 [-0.06, +0.07] 11.55%
splunk_hec_to_splunk_hec_logs_acks ingress throughput +0.00 [-0.14, +0.14] 1.67%
splunk_hec_indexer_ack_blackhole ingress throughput -0.00 [-0.14, +0.13] 0.59%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.01 [-0.12, +0.11] 9.48%
http_to_s3 ingress throughput -0.04 [-0.31, +0.24] 18.09%
splunk_hec_route_s3 ingress throughput -0.06 [-0.58, +0.45] 15.96%
enterprise_http_to_http ingress throughput -0.08 [-0.16, -0.01] 94.17%
datadog_agent_remap_blackhole_acks ingress throughput -0.37 [-0.49, -0.26] 100.00%
otlp_grpc_to_blackhole ingress throughput -0.74 [-0.84, -0.64] 100.00%
http_text_to_http_json ingress throughput -0.99 [-1.14, -0.83] 100.00%
syslog_regex_logs2metric_ddmetrics ingress throughput -1.31 [-1.43, -1.19] 100.00%
datadog_agent_remap_datadog_logs ingress throughput -1.67 [-1.76, -1.58] 100.00%
datadog_agent_remap_blackhole ingress throughput -1.89 [-1.99, -1.79] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput -2.22 [-2.30, -2.13] 100.00%

@github-actions
Copy link

github-actions bot commented Dec 4, 2023

Regression Detector Results

Run ID: 632b1d0d-38e2-49e5-a747-527e64df2bec
Baseline: 2739d8a
Comparison: e384764
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.71 [+6.56, +6.87] 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
file_to_blackhole egress throughput +3.50 [+0.95, +6.04] 97.60%
fluent_elasticsearch ingress throughput +1.73 [+1.26, +2.21] 100.00%
splunk_hec_route_s3 ingress throughput +0.63 [+0.10, +1.15] 95.19%
http_to_http_acks ingress throughput -0.33 [-1.63, +0.97] 32.43%

Fine details of change detection per experiment.

experiment goal Δ mean % Δ mean % CI confidence
otlp_http_to_blackhole ingress throughput +6.71 [+6.56, +6.87] 100.00%
socket_to_socket_blackhole ingress throughput +3.59 [+3.51, +3.68] 100.00%
file_to_blackhole egress throughput +3.50 [+0.95, +6.04] 97.60%
fluent_elasticsearch ingress throughput +1.73 [+1.26, +2.21] 100.00%
otlp_grpc_to_blackhole ingress throughput +1.45 [+1.35, +1.55] 100.00%
syslog_log2metric_splunk_hec_metrics ingress throughput +1.27 [+1.14, +1.40] 100.00%
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput +1.12 [+1.02, +1.22] 100.00%
syslog_splunk_hec_logs ingress throughput +0.83 [+0.76, +0.90] 100.00%
splunk_hec_route_s3 ingress throughput +0.63 [+0.10, +1.15] 95.19%
http_text_to_http_json ingress throughput +0.57 [+0.44, +0.70] 100.00%
datadog_agent_remap_blackhole_acks ingress throughput +0.24 [+0.15, +0.33] 100.00%
http_to_http_noack ingress throughput +0.07 [-0.02, +0.17] 81.24%
http_to_http_json ingress throughput +0.06 [-0.02, +0.14] 81.29%
splunk_hec_to_splunk_hec_logs_acks ingress throughput -0.00 [-0.14, +0.14] 0.65%
splunk_hec_indexer_ack_blackhole ingress throughput -0.00 [-0.14, +0.14] 2.09%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.04 [-0.15, +0.08] 38.01%
enterprise_http_to_http ingress throughput -0.05 [-0.11, +0.01] 80.18%
datadog_agent_remap_blackhole ingress throughput -0.05 [-0.15, +0.05] 58.95%
http_to_http_acks ingress throughput -0.33 [-1.63, +0.97] 32.43%
http_to_s3 ingress throughput -0.33 [-0.61, -0.05] 94.94%
syslog_humio_logs ingress throughput -0.42 [-0.52, -0.31] 100.00%
http_elasticsearch ingress throughput -0.49 [-0.55, -0.43] 100.00%
datadog_agent_remap_datadog_logs ingress throughput -0.73 [-0.82, -0.64] 100.00%
syslog_regex_logs2metric_ddmetrics ingress throughput -0.78 [-0.89, -0.68] 100.00%
syslog_loki ingress throughput -0.91 [-0.96, -0.87] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput -1.08 [-1.17, -0.99] 100.00%
syslog_log2metric_humio_metrics ingress throughput -3.02 [-3.14, -2.91] 100.00%

@github-actions
Copy link

github-actions bot commented Dec 4, 2023

Regression Detector Results

Run ID: 7328e4d1-c4c4-451a-91f6-582dc993bd8d
Baseline: 5b89574
Comparison: 9b814f1
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.11 [+5.96, +6.26] 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
splunk_hec_route_s3 ingress throughput +2.61 [+2.08, +3.14] 100.00%
fluent_elasticsearch ingress throughput +1.79 [+1.32, +2.27] 100.00%
file_to_blackhole egress throughput +1.54 [-0.81, +3.89] 71.84%
http_to_http_acks ingress throughput +1.53 [+0.21, +2.86] 94.39%

Fine details of change detection per experiment.

experiment goal Δ mean % Δ mean % CI confidence
otlp_http_to_blackhole ingress throughput +6.11 [+5.96, +6.26] 100.00%
socket_to_socket_blackhole ingress throughput +4.43 [+4.35, +4.51] 100.00%
syslog_log2metric_splunk_hec_metrics ingress throughput +2.74 [+2.59, +2.90] 100.00%
splunk_hec_route_s3 ingress throughput +2.61 [+2.08, +3.14] 100.00%
fluent_elasticsearch ingress throughput +1.79 [+1.32, +2.27] 100.00%
file_to_blackhole egress throughput +1.54 [-0.81, +3.89] 71.84%
http_to_http_acks ingress throughput +1.53 [+0.21, +2.86] 94.39%
syslog_splunk_hec_logs ingress throughput +0.99 [+0.91, +1.06] 100.00%
syslog_humio_logs ingress throughput +0.87 [+0.77, +0.98] 100.00%
otlp_grpc_to_blackhole ingress throughput +0.76 [+0.67, +0.85] 100.00%
http_text_to_http_json ingress throughput +0.60 [+0.46, +0.74] 100.00%
datadog_agent_remap_blackhole_acks ingress throughput +0.49 [+0.40, +0.59] 100.00%
syslog_regex_logs2metric_ddmetrics ingress throughput +0.40 [+0.31, +0.50] 100.00%
syslog_log2metric_humio_metrics ingress throughput +0.15 [+0.01, +0.29] 92.33%
syslog_loki ingress throughput +0.09 [+0.05, +0.13] 99.99%
http_to_http_noack ingress throughput +0.08 [-0.01, +0.18] 85.19%
http_to_s3 ingress throughput +0.08 [-0.20, +0.36] 35.80%
http_to_http_json ingress throughput +0.03 [-0.04, +0.11] 53.75%
datadog_agent_remap_blackhole ingress throughput +0.03 [-0.09, +0.14] 32.56%
splunk_hec_to_splunk_hec_logs_acks ingress throughput +0.00 [-0.14, +0.14] 0.85%
splunk_hec_indexer_ack_blackhole ingress throughput -0.00 [-0.13, +0.13] 1.24%
enterprise_http_to_http ingress throughput -0.06 [-0.11, -0.01] 92.95%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.08 [-0.19, +0.04] 74.30%
datadog_agent_remap_datadog_logs ingress throughput -0.21 [-0.31, -0.11] 99.95%
http_elasticsearch ingress throughput -0.90 [-0.97, -0.84] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput -1.10 [-1.18, -1.02] 100.00%
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput -1.83 [-1.97, -1.70] 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
@StephenWakely StephenWakely added this pull request to the merge queue Dec 5, 2023
@github-actions
Copy link

github-actions bot commented Dec 5, 2023

Regression Detector Results

Run ID: a7fa182a-ea6b-4f21-a36d-68308dc9add2
Baseline: 8f16a00
Comparison: b297070
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 +0.31 [-1.00, +1.62] 30.20%
file_to_blackhole egress throughput +0.24 [-2.26, +2.73] 12.35%
splunk_hec_route_s3 ingress throughput -0.19 [-0.70, +0.32] 46.91%
fluent_elasticsearch ingress throughput -0.74 [-1.21, -0.27] 99.09%

Fine details of change detection per experiment.

experiment goal Δ mean % Δ mean % CI confidence
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput +1.33 [+1.19, +1.47] 100.00%
otlp_http_to_blackhole ingress throughput +0.81 [+0.65, +0.97] 100.00%
http_text_to_http_json ingress throughput +0.35 [+0.23, +0.48] 100.00%
http_to_http_acks ingress throughput +0.31 [-1.00, +1.62] 30.20%
datadog_agent_remap_blackhole ingress throughput +0.30 [+0.21, +0.39] 100.00%
file_to_blackhole egress throughput +0.24 [-2.26, +2.73] 12.35%
http_to_http_noack ingress throughput +0.22 [+0.13, +0.31] 99.99%
http_to_http_json ingress throughput +0.04 [-0.03, +0.11] 62.98%
splunk_hec_to_splunk_hec_logs_acks ingress throughput +0.00 [-0.14, +0.14] 1.67%
splunk_hec_indexer_ack_blackhole ingress throughput -0.00 [-0.14, +0.14] 2.94%
enterprise_http_to_http ingress throughput -0.04 [-0.13, +0.04] 59.13%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.06 [-0.17, +0.05] 62.73%
datadog_agent_remap_blackhole_acks ingress throughput -0.11 [-0.20, -0.02] 95.79%
splunk_hec_route_s3 ingress throughput -0.19 [-0.70, +0.32] 46.91%
http_to_s3 ingress throughput -0.20 [-0.48, +0.08] 77.04%
syslog_log2metric_splunk_hec_metrics ingress throughput -0.31 [-0.45, -0.17] 99.97%
syslog_humio_logs ingress throughput -0.40 [-0.51, -0.28] 100.00%
otlp_grpc_to_blackhole ingress throughput -0.54 [-0.64, -0.44] 100.00%
syslog_splunk_hec_logs ingress throughput -0.58 [-0.63, -0.52] 100.00%
fluent_elasticsearch ingress throughput -0.74 [-1.21, -0.27] 99.09%
syslog_loki ingress throughput -1.10 [-1.14, -1.05] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput -1.13 [-1.21, -1.05] 100.00%
datadog_agent_remap_datadog_logs ingress throughput -1.57 [-1.67, -1.46] 100.00%
http_elasticsearch ingress throughput -1.90 [-1.97, -1.83] 100.00%
socket_to_socket_blackhole ingress throughput -1.98 [-2.06, -1.91] 100.00%
syslog_regex_logs2metric_ddmetrics ingress throughput -2.46 [-2.59, -2.32] 100.00%
syslog_log2metric_humio_metrics ingress throughput -2.80 [-2.95, -2.65] 100.00%

Merged via the queue into master with commit b297070 Dec 5, 2023
@StephenWakely StephenWakely deleted the OPW-43/dd_global branch December 5, 2023 11:06
AndrooTheChen pushed a commit to discord/vector that referenced this pull request Sep 23, 2024
…ordotdev#18929)

* Add datadog section

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Send global datadog options to sinks

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Fix tests

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Added a test

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Update docs

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Remove source feature

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Test local setting can override the global one

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Spelling

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Update docs

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Feedback from Doug

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Allow datadog options to be specified by passing in the RootOpts

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Pass datadog options through a new extra_context parameter

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Fix extra context

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Tidy up a little

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Make Datadog options pub

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Updated licenses

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Add anymap to spellings

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Add to upgrade guide

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Feedback from Doug

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Spelling

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Feedback from Bryce

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Component docs

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Feedback from Bruce

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Use single_value in tests

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Rename dd_common to local_dd_common

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

* Pass default for extra context when running as a Windows service

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>

---------

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
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: sinks Anything related to the Vector's sinks domain: topology Anything related to Vector's topology code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants