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(codec): Add csv encoding for sinks #16603

Merged
merged 17 commits into from
Mar 10, 2023

Conversation

everpcpc
Copy link
Contributor

fix: #7124

@netlify
Copy link

netlify bot commented Feb 27, 2023

Deploy Preview for vector-project ready!

Name Link
🔨 Latest commit 36adc52
🔍 Latest deploy log https://app.netlify.com/sites/vector-project/deploys/640b541e988c79000829ff16
😎 Deploy Preview https://deploy-preview-16603--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.

@netlify
Copy link

netlify bot commented Feb 27, 2023

Deploy Preview for vrl-playground ready!

Name Link
🔨 Latest commit 36adc52
🔍 Latest deploy log https://app.netlify.com/sites/vrl-playground/deploys/640b541e6d92e500083014c1
😎 Deploy Preview https://deploy-preview-16603--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.

@github-actions github-actions bot added the domain: codecs Anything related to Vector's codecs (encoding/decoding) label Feb 27, 2023
@everpcpc everpcpc marked this pull request as ready for review February 27, 2023 08:55
@everpcpc everpcpc requested a review from a team as a code owner February 27, 2023 09:02
@github-actions github-actions bot added the domain: external docs Anything related to Vector's external, public documentation label Feb 27, 2023
@github-actions
Copy link

Regression Detector Results

Run ID: b3160919-f52c-4e5b-af18-c3e3473be923
Baseline: b8b0198
Comparison: d32ef0b
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
http_text_to_http_json ingress throughput -1.4MiB/CPU-s -5.44 100.00%
otlp_http_to_blackhole ingress throughput -97.56KiB/CPU-s -6.15 100.00%
socket_to_socket_blackhole ingress throughput -882.22KiB/CPU-s -6.33 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
syslog_log2metric_splunk_hec_metrics ingress throughput 267.67KiB/CPU-s 2.90 100.00% 9.01MiB/CPU-s 270.4KiB/CPU-s 3.33KiB/CPU-s 0.0 0.029301 9.27MiB/CPU-s 187.53KiB/CPU-s 2.31KiB/CPU-s 0.0 0.019748 False False
http_to_http_acks ingress throughput 151.29KiB/CPU-s 2.83 99.79% 5.23MiB/CPU-s 2.76MiB/CPU-s 34.79KiB/CPU-s 0.0 0.528189 5.37MiB/CPU-s 2.76MiB/CPU-s 34.77KiB/CPU-s 0.0 0.513321 True False
datadog_agent_remap_blackhole_acks ingress throughput 654.63KiB/CPU-s 2.13 100.00% 30.05MiB/CPU-s 2.67MiB/CPU-s 33.69KiB/CPU-s 0.0 0.088973 30.69MiB/CPU-s 1.37MiB/CPU-s 17.31KiB/CPU-s 0.0 0.044753 False False
syslog_regex_logs2metric_ddmetrics ingress throughput 72.3KiB/CPU-s 1.98 100.00% 3.57MiB/CPU-s 376.12KiB/CPU-s 4.63KiB/CPU-s 0.0 0.102814 3.64MiB/CPU-s 391.95KiB/CPU-s 4.82KiB/CPU-s 0.0 0.105064 True False
syslog_log2metric_humio_metrics ingress throughput 98.59KiB/CPU-s 1.58 100.00% 6.08MiB/CPU-s 257.44KiB/CPU-s 3.17KiB/CPU-s 0.0 0.04133 6.18MiB/CPU-s 152.52KiB/CPU-s 1.88KiB/CPU-s 0.0 0.024104 False False
datadog_agent_remap_datadog_logs_acks ingress throughput 299.54KiB/CPU-s 0.90 100.00% 32.38MiB/CPU-s 1.21MiB/CPU-s 15.24KiB/CPU-s 0.0 0.037353 32.68MiB/CPU-s 978.53KiB/CPU-s 12.04KiB/CPU-s 0.0 0.029243 False False
datadog_agent_remap_datadog_logs ingress throughput 239.09KiB/CPU-s 0.72 100.00% 32.25MiB/CPU-s 1.18MiB/CPU-s 14.9KiB/CPU-s 0.0 0.036653 32.49MiB/CPU-s 1.25MiB/CPU-s 15.77KiB/CPU-s 0.0 0.038525 False False
syslog_splunk_hec_logs ingress throughput 59.3KiB/CPU-s 0.66 100.00% 8.81MiB/CPU-s 287.89KiB/CPU-s 3.54KiB/CPU-s 0.0 0.031922 8.86MiB/CPU-s 235.05KiB/CPU-s 2.89KiB/CPU-s 0.0 0.025892 False False
syslog_humio_logs ingress throughput 47.63KiB/CPU-s 0.53 100.00% 8.76MiB/CPU-s 267.38KiB/CPU-s 3.29KiB/CPU-s 0.0 0.029792 8.81MiB/CPU-s 405.44KiB/CPU-s 4.99KiB/CPU-s 0.0 0.044937 False False
enterprise_http_to_http ingress throughput 5.65KiB/CPU-s 0.04 88.15% 13.62MiB/CPU-s 251.74KiB/CPU-s 3.1KiB/CPU-s 0.0 0.018051 13.62MiB/CPU-s 151.96KiB/CPU-s 1.87KiB/CPU-s 0.0 0.010891 False False
http_to_http_noack ingress throughput -74.36B/CPU-s -0.00 0.99% 13.61MiB/CPU-s 335.82KiB/CPU-s 4.13KiB/CPU-s 0.0 0.024092 13.61MiB/CPU-s 336.06KiB/CPU-s 4.13KiB/CPU-s 0.0 0.024109 False False
splunk_hec_indexer_ack_blackhole ingress throughput 450.07B/CPU-s 0.00 7.71% 13.61MiB/CPU-s 263.48KiB/CPU-s 3.24KiB/CPU-s 0.0 0.018898 13.62MiB/CPU-s 258.62KiB/CPU-s 3.18KiB/CPU-s 0.0 0.018548 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -1.29KiB/CPU-s -0.01 21.40% 13.61MiB/CPU-s 269.14KiB/CPU-s 3.31KiB/CPU-s 0.0 0.019304 13.61MiB/CPU-s 277.07KiB/CPU-s 3.41KiB/CPU-s 0.0 0.019874 False False
file_to_blackhole egress throughput -684.77B/CPU-s -0.01 0.31% 6.01MiB/CPU-s 4.54MiB/CPU-s 119.75KiB/CPU-s 0.0 0.754729 6.01MiB/CPU-s 4.36MiB/CPU-s 123.12KiB/CPU-s 0.0 0.724305 True False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -765.29B/CPU-s -0.01 9.81% 13.61MiB/CPU-s 345.38KiB/CPU-s 4.25KiB/CPU-s 0.0 0.024772 13.61MiB/CPU-s 351.43KiB/CPU-s 4.32KiB/CPU-s 0.0 0.025207 False False
fluent_elasticsearch ingress throughput -8.52KiB/CPU-s -0.02 82.83% 45.41MiB/CPU-s 30.18KiB/CPU-s 376.22B/CPU-s 0.0 0.000649 45.41MiB/CPU-s 510.9KiB/CPU-s 6.22KiB/CPU-s 0.0 0.010987 False False
datadog_agent_remap_blackhole ingress throughput -98.31KiB/CPU-s -0.31 100.00% 30.83MiB/CPU-s 1.32MiB/CPU-s 16.58KiB/CPU-s 0.0 0.042697 30.73MiB/CPU-s 1.18MiB/CPU-s 14.87KiB/CPU-s 0.0 0.038387 False False
splunk_hec_route_s3 ingress throughput -50.16KiB/CPU-s -0.42 100.00% 11.53MiB/CPU-s 682.04KiB/CPU-s 8.39KiB/CPU-s 0.0 0.05776 11.48MiB/CPU-s 641.1KiB/CPU-s 7.89KiB/CPU-s 0.0 0.054525 False False
http_to_http_json ingress throughput -72.85KiB/CPU-s -0.52 100.00% 13.6MiB/CPU-s 253.56KiB/CPU-s 3.12KiB/CPU-s 0.0 0.0182 13.53MiB/CPU-s 351.97KiB/CPU-s 4.33KiB/CPU-s 0.0 0.025396 False False
syslog_loki ingress throughput -169.37KiB/CPU-s -1.94 100.00% 8.53MiB/CPU-s 296.32KiB/CPU-s 3.64KiB/CPU-s 0.0 0.033932 8.36MiB/CPU-s 350.44KiB/CPU-s 4.31KiB/CPU-s 0.0 0.040924 False False
otlp_grpc_to_blackhole ingress throughput -35.72KiB/CPU-s -3.37 100.00% 1.04MiB/CPU-s 43.75KiB/CPU-s 551.35B/CPU-s 0.0 0.041271 1.0MiB/CPU-s 46.51KiB/CPU-s 586.08B/CPU-s 0.0 0.045403 False False
http_text_to_http_json ingress throughput -1.4MiB/CPU-s -5.44 100.00% 25.75MiB/CPU-s 580.19KiB/CPU-s 7.14KiB/CPU-s 0.0 0.022005 24.35MiB/CPU-s 541.97KiB/CPU-s 6.67KiB/CPU-s 0.0 0.021737 False False
otlp_http_to_blackhole ingress throughput -97.56KiB/CPU-s -6.15 100.00% 1.55MiB/CPU-s 113.87KiB/CPU-s 1.4KiB/CPU-s 0.0 0.071784 1.45MiB/CPU-s 126.51KiB/CPU-s 1.56KiB/CPU-s 0.0 0.084977 False False
socket_to_socket_blackhole ingress throughput -882.22KiB/CPU-s -6.33 100.00% 13.62MiB/CPU-s 283.73KiB/CPU-s 3.49KiB/CPU-s 0.0 0.020343 12.76MiB/CPU-s 277.62KiB/CPU-s 3.42KiB/CPU-s 0.0 0.02125 False False

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.

From a UX perspective this seems to be in line, as it's implemented as a codec.
But I'll defer final approval from others in the @vectordotdev/ux-team.

Flagged some cosmetic details

@@ -387,6 +406,8 @@ impl SerializerConfig {
pub enum Serializer {
/// Uses an `AvroSerializer` for serialization.
Avro(AvroSerializer),
/// Uses an `CsvSerializer` for serialization.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
/// Uses an `CsvSerializer` for serialization.
/// Uses a `CsvSerializer` for serialization.

@@ -197,6 +197,15 @@ pub enum SerializerConfig {
avro: AvroSerializerOptions,
},

/// Encodes an event as an CSV message.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
/// Encodes an event as an CSV message.
/// Encodes an event as a CSV message.

}
}

/// The data type of events that are accepted by `JsonSerializer`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
/// The data type of events that are accepted by `JsonSerializer`.
/// The data type of events that are accepted by `CsvSerializer`.

/// Build the `CsvSerializer` from this configuration.
pub fn build(&self) -> Result<CsvSerializer, BuildError> {
if self.fields.is_empty() {
Err("At least one csv field must be specified".into())
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Err("At least one csv field must be specified".into())
Err("At least one CSV field must be specified".into())

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.

I think there's an undocumented/untested requirement here that fields are encoded in a consistent order as well. I believe that should be happening with the existing implementation due to the Vec<OwnedValuePath> but it would be wise to ensure that behavior doesn't change going forward.

lib/codecs/src/encoding/format/csv.rs Outdated Show resolved Hide resolved
#[derive(Debug, Clone, Default)]
pub struct CsvSerializerConfig {
/// The CSV fields.
pub fields: Vec<OwnedValuePath>,
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not wholly convinced by this configuration option, we have encoding.only_fields configuration option for Sinks today which covers much of the same purpose.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, I also considered this config. But in order to use only_config from the transformer, we need to build the serializer with transformer as an argument. That seems a little confusing, and would also introduce a circular import.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We could make this config deeper in csv context, like encoding.csv.fields, maybe that seems better?

@everpcpc
Copy link
Contributor Author

everpcpc commented Mar 2, 2023

Hi, I've added a test for field sequence, and some docs for this configuration.

@github-actions
Copy link

github-actions bot commented Mar 2, 2023

Regression Detector Results

Run ID: 7d3baf04-670c-41a3-b984-eb7254275d0a
Baseline: 90ae9f7
Comparison: 424f333
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 138.9KiB/CPU-s 3.92 100.00% 3.46MiB/CPU-s 357.35KiB/CPU-s 4.4KiB/CPU-s 0.0 0.100888 3.59MiB/CPU-s 407.69KiB/CPU-s 5.02KiB/CPU-s 0.0 0.110756 True False
file_to_blackhole egress throughput 139.85KiB/CPU-s 1.94 57.03% 7.02MiB/CPU-s 3.76MiB/CPU-s 123.42KiB/CPU-s 0.0 0.534408 7.16MiB/CPU-s 3.81MiB/CPU-s 126.94KiB/CPU-s 0.0 0.531589 True False
syslog_log2metric_humio_metrics ingress throughput 103.18KiB/CPU-s 1.68 100.00% 6.01MiB/CPU-s 249.99KiB/CPU-s 3.08KiB/CPU-s 0.0 0.040595 6.11MiB/CPU-s 165.18KiB/CPU-s 2.03KiB/CPU-s 0.0 0.02638 False False
datadog_agent_remap_blackhole_acks ingress throughput 451.69KiB/CPU-s 1.44 100.00% 30.6MiB/CPU-s 1.41MiB/CPU-s 17.7KiB/CPU-s 0.0 0.045905 31.05MiB/CPU-s 645.9KiB/CPU-s 7.95KiB/CPU-s 0.0 0.020316 False False
syslog_humio_logs ingress throughput 123.59KiB/CPU-s 1.37 100.00% 8.78MiB/CPU-s 153.58KiB/CPU-s 1.89KiB/CPU-s 0.0 0.017086 8.9MiB/CPU-s 218.91KiB/CPU-s 2.69KiB/CPU-s 0.0 0.024023 False False
syslog_log2metric_splunk_hec_metrics ingress throughput 108.52KiB/CPU-s 1.16 100.00% 9.15MiB/CPU-s 196.86KiB/CPU-s 2.42KiB/CPU-s 0.0 0.021001 9.26MiB/CPU-s 205.81KiB/CPU-s 2.53KiB/CPU-s 0.0 0.021704 False False
http_to_http_acks ingress throughput 54.94KiB/CPU-s 1.02 74.00% 5.25MiB/CPU-s 2.73MiB/CPU-s 34.39KiB/CPU-s 0.0 0.520072 5.3MiB/CPU-s 2.74MiB/CPU-s 34.59KiB/CPU-s 0.0 0.517649 True False
enterprise_http_to_http ingress throughput 7.47KiB/CPU-s 0.05 94.95% 13.62MiB/CPU-s 270.7KiB/CPU-s 3.33KiB/CPU-s 0.0 0.019413 13.62MiB/CPU-s 152.08KiB/CPU-s 1.87KiB/CPU-s 0.0 0.0109 False False
syslog_splunk_hec_logs ingress throughput 3.61KiB/CPU-s 0.04 66.40% 8.81MiB/CPU-s 196.71KiB/CPU-s 2.42KiB/CPU-s 0.0 0.021807 8.81MiB/CPU-s 233.04KiB/CPU-s 2.87KiB/CPU-s 0.0 0.025825 False False
http_to_http_json ingress throughput 417.18B/CPU-s 0.00 8.51% 13.62MiB/CPU-s 220.6KiB/CPU-s 2.71KiB/CPU-s 0.0 0.015816 13.62MiB/CPU-s 217.9KiB/CPU-s 2.68KiB/CPU-s 0.0 0.015622 False False
http_to_http_noack ingress throughput -224.14B/CPU-s -0.00 2.82% 13.61MiB/CPU-s 356.42KiB/CPU-s 4.38KiB/CPU-s 0.0 0.025574 13.61MiB/CPU-s 356.61KiB/CPU-s 4.39KiB/CPU-s 0.0 0.025588 False False
splunk_hec_indexer_ack_blackhole ingress throughput -204.94B/CPU-s -0.00 3.49% 13.62MiB/CPU-s 259.72KiB/CPU-s 3.19KiB/CPU-s 0.0 0.018628 13.61MiB/CPU-s 266.37KiB/CPU-s 3.28KiB/CPU-s 0.0 0.019104 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -141.7B/CPU-s -0.00 1.73% 13.61MiB/CPU-s 365.98KiB/CPU-s 4.5KiB/CPU-s 0.0 0.026251 13.61MiB/CPU-s 366.21KiB/CPU-s 4.5KiB/CPU-s 0.0 0.026267 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -834.72B/CPU-s -0.01 13.53% 13.61MiB/CPU-s 272.75KiB/CPU-s 3.35KiB/CPU-s 0.0 0.019563 13.61MiB/CPU-s 277.25KiB/CPU-s 3.41KiB/CPU-s 0.0 0.019887 False False
fluent_elasticsearch ingress throughput -7.18KiB/CPU-s -0.02 81.91% 45.41MiB/CPU-s 30.34KiB/CPU-s 378.17B/CPU-s 0.0 0.000652 45.41MiB/CPU-s 440.05KiB/CPU-s 5.35KiB/CPU-s 0.0 0.009463 False False
otlp_grpc_to_blackhole ingress throughput -2.32KiB/CPU-s -0.22 99.67% 1.04MiB/CPU-s 51.39KiB/CPU-s 647.42B/CPU-s 0.0 0.048436 1.03MiB/CPU-s 38.26KiB/CPU-s 482.23B/CPU-s 0.0 0.036143 False False
splunk_hec_route_s3 ingress throughput -53.15KiB/CPU-s -0.45 100.00% 11.56MiB/CPU-s 643.35KiB/CPU-s 7.91KiB/CPU-s 0.0 0.054336 11.51MiB/CPU-s 559.84KiB/CPU-s 6.89KiB/CPU-s 0.0 0.047496 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -336.16KiB/CPU-s -1.00 100.00% 32.81MiB/CPU-s 1.25MiB/CPU-s 15.71KiB/CPU-s 0.0 0.038 32.48MiB/CPU-s 1.09MiB/CPU-s 13.79KiB/CPU-s 0.0 0.033693 False False
datadog_agent_remap_blackhole ingress throughput -362.3KiB/CPU-s -1.12 100.00% 31.56MiB/CPU-s 1015.55KiB/CPU-s 12.49KiB/CPU-s 0.0 0.031425 31.2MiB/CPU-s 1.12MiB/CPU-s 14.13KiB/CPU-s 0.0 0.035918 False False
syslog_loki ingress throughput -114.84KiB/CPU-s -1.32 100.00% 8.52MiB/CPU-s 233.57KiB/CPU-s 2.87KiB/CPU-s 0.0 0.026785 8.4MiB/CPU-s 362.7KiB/CPU-s 4.46KiB/CPU-s 0.0 0.042149 False False
datadog_agent_remap_datadog_logs ingress throughput -654.14KiB/CPU-s -1.92 100.00% 33.32MiB/CPU-s 903.63KiB/CPU-s 11.12KiB/CPU-s 0.0 0.026486 32.68MiB/CPU-s 1.04MiB/CPU-s 13.11KiB/CPU-s 0.0 0.031833 False False
socket_to_socket_blackhole ingress throughput -369.5KiB/CPU-s -2.75 100.00% 13.12MiB/CPU-s 467.91KiB/CPU-s 6.04KiB/CPU-s 0.0 0.034835 12.76MiB/CPU-s 418.61KiB/CPU-s 5.15KiB/CPU-s 0.0 0.032046 False False
otlp_http_to_blackhole ingress throughput -50.76KiB/CPU-s -3.16 100.00% 1.57MiB/CPU-s 106.53KiB/CPU-s 1.31KiB/CPU-s 0.0 0.066388 1.52MiB/CPU-s 124.35KiB/CPU-s 1.53KiB/CPU-s 0.0 0.080023 False False
http_text_to_http_json ingress throughput -904.98KiB/CPU-s -3.61 100.00% 24.51MiB/CPU-s 806.55KiB/CPU-s 9.92KiB/CPU-s 0.0 0.032135 23.63MiB/CPU-s 610.29KiB/CPU-s 7.51KiB/CPU-s 0.0 0.025225 False False

@github-actions
Copy link

github-actions bot commented Mar 2, 2023

Regression Detector Results

Run ID: 3be9e8e4-92ba-4aad-88ab-47736aea1e54
Baseline: 90ae9f7
Comparison: ed2aaaa
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 167.21KiB/CPU-s 4.84 100.00% 3.38MiB/CPU-s 284.55KiB/CPU-s 3.5KiB/CPU-s 0.0 0.082277 3.54MiB/CPU-s 298.47KiB/CPU-s 3.67KiB/CPU-s 0.0 0.08232 False False
syslog_log2metric_splunk_hec_metrics ingress throughput 335.44KiB/CPU-s 3.75 100.00% 8.73MiB/CPU-s 352.66KiB/CPU-s 4.34KiB/CPU-s 0.0 0.039468 9.05MiB/CPU-s 325.53KiB/CPU-s 4.01KiB/CPU-s 0.0 0.035113 False False
syslog_splunk_hec_logs ingress throughput 275.02KiB/CPU-s 3.13 100.00% 8.59MiB/CPU-s 304.02KiB/CPU-s 3.74KiB/CPU-s 0.0 0.034558 8.86MiB/CPU-s 236.65KiB/CPU-s 3.05KiB/CPU-s 0.0 0.026084 False False
datadog_agent_remap_blackhole_acks ingress throughput 682.33KiB/CPU-s 2.22 100.00% 30.04MiB/CPU-s 1.62MiB/CPU-s 20.45KiB/CPU-s 0.0 0.054034 30.7MiB/CPU-s 1.12MiB/CPU-s 14.08KiB/CPU-s 0.0 0.036382 False False
syslog_humio_logs ingress throughput 127.57KiB/CPU-s 1.42 100.00% 8.75MiB/CPU-s 202.78KiB/CPU-s 2.49KiB/CPU-s 0.0 0.022624 8.88MiB/CPU-s 256.44KiB/CPU-s 3.15KiB/CPU-s 0.0 0.02821 False False
syslog_loki ingress throughput 67.77KiB/CPU-s 0.77 100.00% 8.58MiB/CPU-s 201.02KiB/CPU-s 2.47KiB/CPU-s 0.0 0.022869 8.65MiB/CPU-s 217.89KiB/CPU-s 2.68KiB/CPU-s 0.0 0.024599 False False
splunk_hec_route_s3 ingress throughput 62.6KiB/CPU-s 0.53 100.00% 11.55MiB/CPU-s 632.78KiB/CPU-s 7.78KiB/CPU-s 0.0 0.053496 11.61MiB/CPU-s 595.8KiB/CPU-s 7.33KiB/CPU-s 0.0 0.050104 False False
http_to_http_noack ingress throughput 6.37KiB/CPU-s 0.05 74.53% 13.61MiB/CPU-s 350.82KiB/CPU-s 4.32KiB/CPU-s 0.0 0.025171 13.62MiB/CPU-s 289.26KiB/CPU-s 3.56KiB/CPU-s 0.0 0.020745 False False
enterprise_http_to_http ingress throughput 5.36KiB/CPU-s 0.04 86.64% 13.62MiB/CPU-s 220.92KiB/CPU-s 2.72KiB/CPU-s 0.0 0.015843 13.62MiB/CPU-s 188.09KiB/CPU-s 2.31KiB/CPU-s 0.0 0.013483 False False
splunk_hec_indexer_ack_blackhole ingress throughput 939.97B/CPU-s 0.01 15.96% 13.61MiB/CPU-s 264.53KiB/CPU-s 3.25KiB/CPU-s 0.0 0.018974 13.62MiB/CPU-s 259.45KiB/CPU-s 3.19KiB/CPU-s 0.0 0.018608 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput -127.89B/CPU-s -0.00 1.52% 13.61MiB/CPU-s 370.86KiB/CPU-s 4.56KiB/CPU-s 0.0 0.0266 13.61MiB/CPU-s 380.81KiB/CPU-s 4.68KiB/CPU-s 0.0 0.027314 False False
http_to_http_json ingress throughput -705.2B/CPU-s -0.00 14.41% 13.62MiB/CPU-s 216.28KiB/CPU-s 2.66KiB/CPU-s 0.0 0.015506 13.62MiB/CPU-s 219.7KiB/CPU-s 2.7KiB/CPU-s 0.0 0.015752 False False
fluent_elasticsearch ingress throughput 94.12B/CPU-s 0.00 14.10% 45.41MiB/CPU-s 30.0KiB/CPU-s 373.93B/CPU-s 0.0 0.000645 45.41MiB/CPU-s 30.13KiB/CPU-s 375.45B/CPU-s 0.0 0.000648 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -1.11KiB/CPU-s -0.01 18.28% 13.61MiB/CPU-s 271.58KiB/CPU-s 3.34KiB/CPU-s 0.0 0.019479 13.61MiB/CPU-s 278.12KiB/CPU-s 3.42KiB/CPU-s 0.0 0.01995 False False
syslog_log2metric_humio_metrics ingress throughput -62.45KiB/CPU-s -1.02 100.00% 5.95MiB/CPU-s 290.29KiB/CPU-s 3.57KiB/CPU-s 0.0 0.047622 5.89MiB/CPU-s 286.75KiB/CPU-s 3.53KiB/CPU-s 0.0 0.047528 False False
otlp_grpc_to_blackhole ingress throughput -13.02KiB/CPU-s -1.23 100.00% 1.03MiB/CPU-s 51.51KiB/CPU-s 649.03B/CPU-s 0.0 0.048643 1.02MiB/CPU-s 48.98KiB/CPU-s 617.19B/CPU-s 0.0 0.046829 False False
datadog_agent_remap_datadog_logs ingress throughput -423.97KiB/CPU-s -1.24 100.00% 33.33MiB/CPU-s 1.06MiB/CPU-s 13.33KiB/CPU-s 0.0 0.03174 32.92MiB/CPU-s 935.56KiB/CPU-s 11.51KiB/CPU-s 0.0 0.027752 False False
datadog_agent_remap_blackhole ingress throughput -632.7KiB/CPU-s -1.98 100.00% 31.18MiB/CPU-s 940.98KiB/CPU-s 11.58KiB/CPU-s 0.0 0.029471 30.56MiB/CPU-s 1.54MiB/CPU-s 19.4KiB/CPU-s 0.0 0.050392 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -764.79KiB/CPU-s -2.27 100.00% 32.85MiB/CPU-s 1.0MiB/CPU-s 12.66KiB/CPU-s 0.0 0.030579 32.1MiB/CPU-s 1.55MiB/CPU-s 19.48KiB/CPU-s 0.0 0.048191 False False
http_to_http_acks ingress throughput -125.81KiB/CPU-s -2.29 99.04% 5.36MiB/CPU-s 2.74MiB/CPU-s 34.5KiB/CPU-s 0.0 0.511063 5.23MiB/CPU-s 2.71MiB/CPU-s 34.18KiB/CPU-s 0.0 0.518232 True False
file_to_blackhole egress throughput -209.83KiB/CPU-s -2.82 76.58% 7.26MiB/CPU-s 3.69MiB/CPU-s 123.27KiB/CPU-s 0.0 0.507509 7.05MiB/CPU-s 3.85MiB/CPU-s 126.1KiB/CPU-s 0.0 0.545511 True False
http_text_to_http_json ingress throughput -770.55KiB/CPU-s -3.07 100.00% 24.53MiB/CPU-s 621.05KiB/CPU-s 7.64KiB/CPU-s 0.0 0.024722 23.78MiB/CPU-s 599.39KiB/CPU-s 7.38KiB/CPU-s 0.0 0.024614 False False
otlp_http_to_blackhole ingress throughput -64.48KiB/CPU-s -4.03 100.00% 1.56MiB/CPU-s 107.68KiB/CPU-s 1.32KiB/CPU-s 0.0 0.067267 1.5MiB/CPU-s 124.78KiB/CPU-s 1.54KiB/CPU-s 0.0 0.08122 False False
socket_to_socket_blackhole ingress throughput -590.29KiB/CPU-s -4.30 100.00% 13.4MiB/CPU-s 220.87KiB/CPU-s 2.72KiB/CPU-s 0.0 0.016092 12.83MiB/CPU-s 362.6KiB/CPU-s 4.46KiB/CPU-s 0.0 0.027604 False False

lib/codecs/src/encoding/format/csv.rs Outdated Show resolved Hide resolved
lib/codecs/src/encoding/format/csv.rs Outdated Show resolved Hide resolved
///
/// Some value types: Array, Regex, Object are not supported by the CSV format.
/// If a field is of an unsupported type, the output will be `NaN`.
pub fields: Vec<ConfigOwnedValuePath>,
Copy link
Member

Choose a reason for hiding this comment

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

Just making sure the choice of ValuePath here was intentional, instead of TargetPath. This will prevent event metadata from being serialized. I'm not seeing a great reason to restrict it.

Copy link
Member

Choose a reason for hiding this comment

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

Note: If this is switched, an equivalent ConfigOwnedTargetPath doesn't exist yet, but I can quickly make one.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It seems OK to change it to TargetPath. I chose ConfigOwnedValuePath since it is also used in Transformer.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hi, I've tried making a ConfigOwnedTargetPath.
Unlike ConfigOwnedValuePath, we need to implement Default for it. Is it OK to use PathPrefix::Event as default prefix?

Copy link
Contributor

Choose a reason for hiding this comment

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

I think that's correct, but @fuchsnj can you confirm?

Copy link
Member

Choose a reason for hiding this comment

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

ConfigOwnedTargetPath shouldn't have Default either. CsvSerializerOptions and CsvSerializerConfig can have Default removed since they are unused / also not needed.

@jszwedko jszwedko requested a review from a team March 3, 2023 20:27
@jsoref
Copy link
Contributor

jsoref commented Mar 3, 2023

You're going to need to merge to master to get Check Spelling to run.

lib/codecs/src/encoding/format/csv.rs Outdated Show resolved Hide resolved
lib/codecs/src/encoding/format/csv.rs Outdated Show resolved Hide resolved
@github-actions
Copy link

github-actions bot commented Mar 4, 2023

Regression Detector Results

Run ID: 3616a028-f175-418c-a2b5-b710770f5da4
Baseline: cad1643
Comparison: 6c07d11
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
http_text_to_http_json ingress throughput -1.75MiB/CPU-s -6.99 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
otlp_http_to_blackhole ingress throughput 46.06KiB/CPU-s 2.98 100.00% 1.51MiB/CPU-s 126.49KiB/CPU-s 1.56KiB/CPU-s 0.0 0.081749 1.56MiB/CPU-s 100.74KiB/CPU-s 1.24KiB/CPU-s 0.0 0.063225 False False
otlp_grpc_to_blackhole ingress throughput 20.44KiB/CPU-s 1.94 100.00% 1.03MiB/CPU-s 45.69KiB/CPU-s 575.78B/CPU-s 0.0 0.043434 1.05MiB/CPU-s 42.1KiB/CPU-s 530.53B/CPU-s 0.0 0.039258 False False
syslog_humio_logs ingress throughput 122.18KiB/CPU-s 1.36 100.00% 8.74MiB/CPU-s 209.37KiB/CPU-s 2.58KiB/CPU-s 0.0 0.023379 8.86MiB/CPU-s 221.58KiB/CPU-s 2.73KiB/CPU-s 0.0 0.02441 False False
datadog_agent_remap_blackhole_acks ingress throughput 210.63KiB/CPU-s 0.66 100.00% 31.09MiB/CPU-s 1.12MiB/CPU-s 14.09KiB/CPU-s 0.0 0.035972 31.29MiB/CPU-s 773.51KiB/CPU-s 9.52KiB/CPU-s 0.0 0.024138 False False
socket_to_socket_blackhole ingress throughput 65.25KiB/CPU-s 0.49 100.00% 13.1MiB/CPU-s 322.78KiB/CPU-s 3.97KiB/CPU-s 0.0 0.024058 13.16MiB/CPU-s 311.35KiB/CPU-s 3.83KiB/CPU-s 0.0 0.023094 False False
http_to_http_acks ingress throughput 2.61KiB/CPU-s 0.05 4.25% 5.28MiB/CPU-s 2.75MiB/CPU-s 34.65KiB/CPU-s 0.0 0.521194 5.28MiB/CPU-s 2.74MiB/CPU-s 34.57KiB/CPU-s 0.0 0.519604 True False
splunk_hec_to_splunk_hec_logs_acks ingress throughput 136.16B/CPU-s 0.00 1.67% 13.61MiB/CPU-s 365.84KiB/CPU-s 4.5KiB/CPU-s 0.0 0.026242 13.61MiB/CPU-s 362.49KiB/CPU-s 4.46KiB/CPU-s 0.0 0.026001 False False
fluent_elasticsearch ingress throughput -420.74B/CPU-s -0.00 57.43% 45.41MiB/CPU-s 30.06KiB/CPU-s 374.59B/CPU-s 0.0 0.000646 45.41MiB/CPU-s 29.88KiB/CPU-s 372.43B/CPU-s 0.0 0.000643 False False
enterprise_http_to_http ingress throughput -252.85B/CPU-s -0.00 5.15% 13.62MiB/CPU-s 218.99KiB/CPU-s 2.7KiB/CPU-s 0.0 0.0157 13.62MiB/CPU-s 220.48KiB/CPU-s 2.71KiB/CPU-s 0.0 0.015807 False False
splunk_hec_indexer_ack_blackhole ingress throughput -1.93KiB/CPU-s -0.01 34.03% 13.62MiB/CPU-s 245.22KiB/CPU-s 3.02KiB/CPU-s 0.0 0.017584 13.62MiB/CPU-s 257.72KiB/CPU-s 3.17KiB/CPU-s 0.0 0.018483 False False
http_to_http_json ingress throughput -715.93B/CPU-s -0.01 14.49% 13.62MiB/CPU-s 219.28KiB/CPU-s 2.7KiB/CPU-s 0.0 0.015721 13.62MiB/CPU-s 220.93KiB/CPU-s 2.72KiB/CPU-s 0.0 0.01584 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -3.25KiB/CPU-s -0.02 51.47% 13.62MiB/CPU-s 257.04KiB/CPU-s 3.16KiB/CPU-s 0.0 0.018433 13.61MiB/CPU-s 277.71KiB/CPU-s 3.42KiB/CPU-s 0.0 0.01992 False False
syslog_log2metric_splunk_hec_metrics ingress throughput -1.94KiB/CPU-s -0.02 36.85% 9.14MiB/CPU-s 194.76KiB/CPU-s 2.4KiB/CPU-s 0.0 0.020805 9.14MiB/CPU-s 264.0KiB/CPU-s 3.25KiB/CPU-s 0.0 0.028207 False False
syslog_splunk_hec_logs ingress throughput -1.78KiB/CPU-s -0.02 35.79% 8.78MiB/CPU-s 212.69KiB/CPU-s 2.62KiB/CPU-s 0.0 0.023657 8.78MiB/CPU-s 226.45KiB/CPU-s 2.79KiB/CPU-s 0.0 0.025194 False False
http_to_http_noack ingress throughput -3.63KiB/CPU-s -0.03 43.02% 13.61MiB/CPU-s 351.35KiB/CPU-s 4.32KiB/CPU-s 0.0 0.02521 13.61MiB/CPU-s 381.99KiB/CPU-s 4.7KiB/CPU-s 0.0 0.027415 False False
syslog_loki ingress throughput -7.58KiB/CPU-s -0.09 94.65% 8.58MiB/CPU-s 240.22KiB/CPU-s 2.95KiB/CPU-s 0.0 0.027331 8.58MiB/CPU-s 210.29KiB/CPU-s 2.59KiB/CPU-s 0.0 0.023946 False False
datadog_agent_remap_blackhole ingress throughput -189.98KiB/CPU-s -0.60 100.00% 30.9MiB/CPU-s 1.22MiB/CPU-s 15.42KiB/CPU-s 0.0 0.03962 30.71MiB/CPU-s 1.35MiB/CPU-s 16.97KiB/CPU-s 0.0 0.043853 False False
splunk_hec_route_s3 ingress throughput -88.83KiB/CPU-s -0.75 100.00% 11.61MiB/CPU-s 552.9KiB/CPU-s 6.8KiB/CPU-s 0.0 0.046487 11.53MiB/CPU-s 540.49KiB/CPU-s 6.65KiB/CPU-s 0.0 0.045785 False False
syslog_log2metric_humio_metrics ingress throughput -67.82KiB/CPU-s -1.09 100.00% 6.1MiB/CPU-s 185.08KiB/CPU-s 2.28KiB/CPU-s 0.0 0.029624 6.03MiB/CPU-s 275.7KiB/CPU-s 3.39KiB/CPU-s 0.0 0.044614 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -43.97KiB/CPU-s -1.19 100.00% 3.6MiB/CPU-s 351.59KiB/CPU-s 4.33KiB/CPU-s 0.0 0.095239 3.56MiB/CPU-s 353.7KiB/CPU-s 4.35KiB/CPU-s 0.0 0.096965 False True
file_to_blackhole egress throughput -139.01KiB/CPU-s -1.93 56.92% 7.02MiB/CPU-s 3.89MiB/CPU-s 127.51KiB/CPU-s 0.0 0.554008 6.89MiB/CPU-s 3.75MiB/CPU-s 121.91KiB/CPU-s 0.0 0.544248 True True
datadog_agent_remap_datadog_logs_acks ingress throughput -782.22KiB/CPU-s -2.31 100.00% 33.01MiB/CPU-s 1.31MiB/CPU-s 16.52KiB/CPU-s 0.0 0.039723 32.25MiB/CPU-s 1.38MiB/CPU-s 17.37KiB/CPU-s 0.0 0.042778 False False
datadog_agent_remap_datadog_logs ingress throughput -920.36KiB/CPU-s -2.74 100.00% 32.84MiB/CPU-s 1.29MiB/CPU-s 16.26KiB/CPU-s 0.0 0.039288 31.94MiB/CPU-s 1.1MiB/CPU-s 13.83KiB/CPU-s 0.0 0.034368 False False
http_text_to_http_json ingress throughput -1.75MiB/CPU-s -6.99 100.00% 25.03MiB/CPU-s 495.3KiB/CPU-s 6.09KiB/CPU-s 0.0 0.01932 23.28MiB/CPU-s 532.02KiB/CPU-s 6.55KiB/CPU-s 0.0 0.022311 False False

Copy link
Contributor

@spencergilbert spencergilbert left a comment

Choose a reason for hiding this comment

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

Small update, still discussing internally - sorry for the delay!

lib/codecs/src/encoding/format/csv.rs Outdated Show resolved Hide resolved
lib/codecs/src/encoding/format/csv.rs Show resolved Hide resolved
lib/codecs/src/encoding/format/csv.rs Show resolved Hide resolved
@github-actions
Copy link

github-actions bot commented Mar 9, 2023

Regression Detector Results

Run ID: f2388ba1-5ea9-45da-8105-be3d223b057b
Baseline: 2f6b6d2
Comparison: f6b0913
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_loki ingress throughput 226.62KiB/CPU-s 2.66 100.00% 8.31MiB/CPU-s 262.39KiB/CPU-s 3.23KiB/CPU-s 0.0 0.030817 8.54MiB/CPU-s 203.17KiB/CPU-s 2.5KiB/CPU-s 0.0 0.023243 False False
syslog_log2metric_splunk_hec_metrics ingress throughput 170.97KiB/CPU-s 1.88 100.00% 8.87MiB/CPU-s 349.56KiB/CPU-s 4.3KiB/CPU-s 0.0 0.038462 9.04MiB/CPU-s 308.45KiB/CPU-s 3.79KiB/CPU-s 0.0 0.033313 False False
datadog_agent_remap_blackhole_acks ingress throughput 542.57KiB/CPU-s 1.76 100.00% 30.09MiB/CPU-s 1.57MiB/CPU-s 19.83KiB/CPU-s 0.0 0.052302 30.62MiB/CPU-s 1.08MiB/CPU-s 13.59KiB/CPU-s 0.0 0.035202 False False
syslog_humio_logs ingress throughput 100.39KiB/CPU-s 1.12 100.00% 8.75MiB/CPU-s 234.88KiB/CPU-s 2.89KiB/CPU-s 0.0 0.026206 8.85MiB/CPU-s 216.71KiB/CPU-s 2.67KiB/CPU-s 0.0 0.023912 False False
otlp_grpc_to_blackhole ingress throughput 10.19KiB/CPU-s 0.96 100.00% 1.03MiB/CPU-s 46.38KiB/CPU-s 584.5B/CPU-s 0.0 0.043775 1.04MiB/CPU-s 43.52KiB/CPU-s 548.4B/CPU-s 0.0 0.04068 False False
otlp_http_to_blackhole ingress throughput 9.36KiB/CPU-s 0.59 100.00% 1.55MiB/CPU-s 114.18KiB/CPU-s 1.4KiB/CPU-s 0.0 0.072026 1.56MiB/CPU-s 104.88KiB/CPU-s 1.29KiB/CPU-s 0.0 0.065772 False False
socket_to_socket_blackhole ingress throughput 69.51KiB/CPU-s 0.51 100.00% 13.2MiB/CPU-s 499.41KiB/CPU-s 6.14KiB/CPU-s 0.0 0.036955 13.26MiB/CPU-s 234.44KiB/CPU-s 2.89KiB/CPU-s 0.0 0.017259 False False
http_to_http_json ingress throughput 31.13KiB/CPU-s 0.22 100.00% 13.59MiB/CPU-s 266.27KiB/CPU-s 3.28KiB/CPU-s 0.0 0.019132 13.62MiB/CPU-s 217.53KiB/CPU-s 2.68KiB/CPU-s 0.0 0.015595 False False
http_to_http_acks ingress throughput 4.67KiB/CPU-s 0.09 7.60% 5.26MiB/CPU-s 2.74MiB/CPU-s 34.48KiB/CPU-s 0.0 0.519994 5.27MiB/CPU-s 2.76MiB/CPU-s 34.72KiB/CPU-s 0.0 0.523183 True False
enterprise_http_to_http ingress throughput 1.89KiB/CPU-s 0.01 39.87% 13.62MiB/CPU-s 223.88KiB/CPU-s 2.76KiB/CPU-s 0.0 0.016051 13.62MiB/CPU-s 191.48KiB/CPU-s 2.36KiB/CPU-s 0.0 0.013726 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput 1.07KiB/CPU-s 0.01 13.14% 13.61MiB/CPU-s 373.33KiB/CPU-s 4.59KiB/CPU-s 0.0 0.026779 13.61MiB/CPU-s 369.6KiB/CPU-s 4.55KiB/CPU-s 0.0 0.026509 False False
http_to_http_noack ingress throughput 89.22B/CPU-s 0.00 1.47% 13.62MiB/CPU-s 271.08KiB/CPU-s 3.34KiB/CPU-s 0.0 0.01944 13.62MiB/CPU-s 272.15KiB/CPU-s 3.35KiB/CPU-s 0.0 0.019517 False False
fluent_elasticsearch ingress throughput -368.75B/CPU-s -0.00 51.80% 45.41MiB/CPU-s 29.89KiB/CPU-s 372.56B/CPU-s 0.0 0.000643 45.41MiB/CPU-s 29.62KiB/CPU-s 369.15B/CPU-s 0.0 0.000637 False False
splunk_hec_indexer_ack_blackhole ingress throughput -1.12KiB/CPU-s -0.01 20.22% 13.62MiB/CPU-s 248.9KiB/CPU-s 3.06KiB/CPU-s 0.0 0.017848 13.62MiB/CPU-s 255.18KiB/CPU-s 3.14KiB/CPU-s 0.0 0.018301 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -2.24KiB/CPU-s -0.02 37.22% 13.62MiB/CPU-s 256.12KiB/CPU-s 3.15KiB/CPU-s 0.0 0.018367 13.61MiB/CPU-s 273.69KiB/CPU-s 3.37KiB/CPU-s 0.0 0.01963 False False
splunk_hec_route_s3 ingress throughput -21.6KiB/CPU-s -0.18 97.70% 11.72MiB/CPU-s 556.21KiB/CPU-s 6.84KiB/CPU-s 0.0 0.046333 11.7MiB/CPU-s 535.82KiB/CPU-s 6.59KiB/CPU-s 0.0 0.044716 False False
syslog_splunk_hec_logs ingress throughput -25.19KiB/CPU-s -0.28 100.00% 8.75MiB/CPU-s 201.74KiB/CPU-s 2.48KiB/CPU-s 0.0 0.02251 8.73MiB/CPU-s 211.65KiB/CPU-s 2.6KiB/CPU-s 0.0 0.023683 False False
datadog_agent_remap_datadog_logs_acks ingress throughput -263.54KiB/CPU-s -0.78 100.00% 32.87MiB/CPU-s 1.08MiB/CPU-s 13.6KiB/CPU-s 0.0 0.032835 32.61MiB/CPU-s 1.33MiB/CPU-s 16.75KiB/CPU-s 0.0 0.040791 False False
datadog_agent_remap_blackhole ingress throughput -356.26KiB/CPU-s -1.11 100.00% 31.26MiB/CPU-s 1.11MiB/CPU-s 13.97KiB/CPU-s 0.0 0.035465 30.91MiB/CPU-s 978.54KiB/CPU-s 12.04KiB/CPU-s 0.0 0.030911 False False
datadog_agent_remap_datadog_logs ingress throughput -613.48KiB/CPU-s -1.82 100.00% 32.9MiB/CPU-s 946.34KiB/CPU-s 11.65KiB/CPU-s 0.0 0.028085 32.3MiB/CPU-s 1.58MiB/CPU-s 19.96KiB/CPU-s 0.0 0.049041 False False
syslog_log2metric_humio_metrics ingress throughput -178.13KiB/CPU-s -2.80 100.00% 6.2MiB/CPU-s 201.5KiB/CPU-s 2.48KiB/CPU-s 0.0 0.031723 6.03MiB/CPU-s 267.87KiB/CPU-s 3.3KiB/CPU-s 0.0 0.04339 False False
syslog_regex_logs2metric_ddmetrics ingress throughput -110.15KiB/CPU-s -2.94 100.00% 3.66MiB/CPU-s 397.08KiB/CPU-s 4.89KiB/CPU-s 0.0 0.106074 3.55MiB/CPU-s 289.59KiB/CPU-s 3.56KiB/CPU-s 0.0 0.079704 True True
http_text_to_http_json ingress throughput -760.29KiB/CPU-s -2.99 100.00% 24.82MiB/CPU-s 511.93KiB/CPU-s 6.3KiB/CPU-s 0.0 0.020139 24.08MiB/CPU-s 618.72KiB/CPU-s 7.62KiB/CPU-s 0.0 0.025091 False False
file_to_blackhole egress throughput -685.55KiB/CPU-s -9.84 99.99% 6.8MiB/CPU-s 4.08MiB/CPU-s 119.8KiB/CPU-s 1.729819 0.599146 6.13MiB/CPU-s 4.29MiB/CPU-s 120.84KiB/CPU-s 0.151286 0.699557 True True

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.

🚀 this looks good to me, I'd like to wait for @fuchsnj's confirmation on the paths question but otherwise I'm happy to merge this as-is.

Thanks for the contribution @everpcpc!

Copy link
Member

@fuchsnj fuchsnj left a comment

Choose a reason for hiding this comment

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

#16728 was merged into master after CI passed on this PR. This would have broken master if this PR was merged in, so I went ahead and merged master back into this branch and fixed what it broke. That takes care of the comments about Default I had, so I'm good with this PR now.

@spencergilbert spencergilbert enabled auto-merge (squash) March 10, 2023 16:09
@github-actions
Copy link

Regression Detector Results

Run ID: 1c4b7c0a-c148-4f7d-b305-8cfb33737cd9
Baseline: 2d476ea
Comparison: 36adc52
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
http_text_to_http_json ingress throughput 1.67MiB/CPU-s 6.88 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 1.67MiB/CPU-s 6.88 100.00% 24.28MiB/CPU-s 719.37KiB/CPU-s 8.85KiB/CPU-s 0.0 0.028932 25.95MiB/CPU-s 514.63KiB/CPU-s 6.64KiB/CPU-s 0.0 0.019365 False False
file_to_blackhole egress throughput 382.99KiB/CPU-s 6.20 97.53% 6.03MiB/CPU-s 4.54MiB/CPU-s 120.7KiB/CPU-s 0.0 0.752116 6.4MiB/CPU-s 4.13MiB/CPU-s 120.34KiB/CPU-s 6.462036 0.645526 True True
otlp_http_to_blackhole ingress throughput 38.44KiB/CPU-s 2.51 100.00% 1.49MiB/CPU-s 132.71KiB/CPU-s 1.63KiB/CPU-s 0.0 0.08682 1.53MiB/CPU-s 118.94KiB/CPU-s 1.46KiB/CPU-s 0.0 0.075908 False False
socket_to_socket_blackhole ingress throughput 291.1KiB/CPU-s 2.18 100.00% 13.06MiB/CPU-s 274.58KiB/CPU-s 3.38KiB/CPU-s 0.0 0.020532 13.34MiB/CPU-s 274.76KiB/CPU-s 3.38KiB/CPU-s 0.0 0.020108 False False
syslog_regex_logs2metric_ddmetrics ingress throughput 64.47KiB/CPU-s 1.79 100.00% 3.51MiB/CPU-s 340.46KiB/CPU-s 4.19KiB/CPU-s 0.0 0.094672 3.57MiB/CPU-s 377.22KiB/CPU-s 4.64KiB/CPU-s 0.0 0.103045 True True
http_to_http_acks ingress throughput 51.87KiB/CPU-s 0.97 70.98% 5.23MiB/CPU-s 2.73MiB/CPU-s 34.42KiB/CPU-s 0.0 0.522472 5.28MiB/CPU-s 2.77MiB/CPU-s 34.94KiB/CPU-s 0.0 0.525308 True False
syslog_log2metric_splunk_hec_metrics ingress throughput 66.38KiB/CPU-s 0.72 100.00% 8.98MiB/CPU-s 288.6KiB/CPU-s 3.55KiB/CPU-s 0.0 0.031369 9.05MiB/CPU-s 309.06KiB/CPU-s 3.8KiB/CPU-s 0.0 0.033352 False False
http_to_http_json ingress throughput 99.06KiB/CPU-s 0.72 100.00% 13.52MiB/CPU-s 344.31KiB/CPU-s 4.24KiB/CPU-s 0.0 0.024862 13.62MiB/CPU-s 221.13KiB/CPU-s 2.72KiB/CPU-s 0.0 0.015854 False False
syslog_loki ingress throughput 59.86KiB/CPU-s 0.68 100.00% 8.62MiB/CPU-s 204.91KiB/CPU-s 2.52KiB/CPU-s 0.0 0.023225 8.67MiB/CPU-s 179.94KiB/CPU-s 2.21KiB/CPU-s 0.0 0.020258 False False
datadog_agent_remap_blackhole_acks ingress throughput 200.88KiB/CPU-s 0.65 100.00% 30.1MiB/CPU-s 990.0KiB/CPU-s 12.18KiB/CPU-s 0.0 0.032119 30.29MiB/CPU-s 1.82MiB/CPU-s 22.89KiB/CPU-s 0.0 0.059957 False False
syslog_splunk_hec_logs ingress throughput 54.24KiB/CPU-s 0.61 100.00% 8.69MiB/CPU-s 258.91KiB/CPU-s 3.18KiB/CPU-s 0.0 0.029079 8.75MiB/CPU-s 224.73KiB/CPU-s 2.76KiB/CPU-s 0.0 0.025087 False False
datadog_agent_remap_datadog_logs ingress throughput 88.52KiB/CPU-s 0.26 100.00% 32.63MiB/CPU-s 1009.84KiB/CPU-s 12.42KiB/CPU-s 0.0 0.030223 32.71MiB/CPU-s 1022.9KiB/CPU-s 12.58KiB/CPU-s 0.0 0.030533 False False
enterprise_http_to_http ingress throughput 9.13KiB/CPU-s 0.07 97.47% 13.61MiB/CPU-s 295.46KiB/CPU-s 3.64KiB/CPU-s 0.0 0.021191 13.62MiB/CPU-s 150.28KiB/CPU-s 1.85KiB/CPU-s 0.0 0.010772 False False
datadog_agent_remap_datadog_logs_acks ingress throughput 15.03KiB/CPU-s 0.05 50.64% 32.51MiB/CPU-s 992.92KiB/CPU-s 12.22KiB/CPU-s 0.0 0.029822 32.53MiB/CPU-s 1.45MiB/CPU-s 18.23KiB/CPU-s 0.0 0.04449 False False
http_to_http_noack ingress throughput 7.57KiB/CPU-s 0.05 78.52% 13.61MiB/CPU-s 385.88KiB/CPU-s 4.75KiB/CPU-s 0.0 0.027695 13.61MiB/CPU-s 311.26KiB/CPU-s 3.83KiB/CPU-s 0.0 0.022327 False False
datadog_agent_remap_blackhole ingress throughput 5.1KiB/CPU-s 0.02 20.76% 30.97MiB/CPU-s 1.01MiB/CPU-s 12.71KiB/CPU-s 0.0 0.032577 30.97MiB/CPU-s 1.16MiB/CPU-s 14.61KiB/CPU-s 0.0 0.037428 False False
splunk_hec_indexer_ack_blackhole ingress throughput 2.43KiB/CPU-s 0.02 41.92% 13.62MiB/CPU-s 259.92KiB/CPU-s 3.2KiB/CPU-s 0.0 0.018641 13.62MiB/CPU-s 245.62KiB/CPU-s 3.02KiB/CPU-s 0.0 0.017613 False False
splunk_hec_to_splunk_hec_logs_acks ingress throughput 543.29B/CPU-s 0.00 6.67% 13.61MiB/CPU-s 365.51KiB/CPU-s 4.5KiB/CPU-s 0.0 0.026218 13.61MiB/CPU-s 363.14KiB/CPU-s 4.47KiB/CPU-s 0.0 0.026046 False False
splunk_hec_to_splunk_hec_logs_noack ingress throughput -2.59KiB/CPU-s -0.02 42.11% 13.62MiB/CPU-s 259.87KiB/CPU-s 3.2KiB/CPU-s 0.0 0.018637 13.61MiB/CPU-s 276.39KiB/CPU-s 3.4KiB/CPU-s 0.0 0.019825 False False
fluent_elasticsearch ingress throughput -7.37KiB/CPU-s -0.02 82.15% 45.41MiB/CPU-s 30.2KiB/CPU-s 376.5B/CPU-s 0.0 0.000649 45.41MiB/CPU-s 448.9KiB/CPU-s 5.47KiB/CPU-s 0.0 0.009654 False False
otlp_grpc_to_blackhole ingress throughput -513.06B/CPU-s -0.05 46.76% 1.03MiB/CPU-s 50.94KiB/CPU-s 641.73B/CPU-s 0.0 0.048163 1.03MiB/CPU-s 40.73KiB/CPU-s 513.3B/CPU-s 0.0 0.038528 False False
syslog_humio_logs ingress throughput -16.23KiB/CPU-s -0.18 99.99% 8.85MiB/CPU-s 233.96KiB/CPU-s 2.88KiB/CPU-s 0.0 0.025816 8.83MiB/CPU-s 227.27KiB/CPU-s 2.8KiB/CPU-s 0.0 0.025124 False False
splunk_hec_route_s3 ingress throughput -223.48KiB/CPU-s -1.87 100.00% 11.69MiB/CPU-s 611.89KiB/CPU-s 7.53KiB/CPU-s 0.0 0.05113 11.47MiB/CPU-s 609.42KiB/CPU-s 7.5KiB/CPU-s 0.0 0.051893 False False
syslog_log2metric_humio_metrics ingress throughput -143.56KiB/CPU-s -2.31 100.00% 6.06MiB/CPU-s 310.96KiB/CPU-s 3.83KiB/CPU-s 0.0 0.050089 5.92MiB/CPU-s 289.32KiB/CPU-s 3.56KiB/CPU-s 0.0 0.047706 False False

@spencergilbert spencergilbert merged commit 827f8d8 into vectordotdev:master Mar 10, 2023
@everpcpc everpcpc deleted the feat-csv branch March 11, 2023 02:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain: codecs Anything related to Vector's codecs (encoding/decoding) domain: external docs Anything related to Vector's external, public documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add csv encoding for sinks
7 participants