vector icon indicating copy to clipboard operation
vector copied to clipboard

fix(codecs) csv documentation defaults as ascii_char

Open scMarkus opened this issue 1 year ago • 5 comments

work in progress PR to work out how to best solve #18669.

current state has been described here https://github.com/vectordotdev/vector/issues/18669#issuecomment-2110454821

@tobz woudl you suggest looking into the conversion between json schema file and cue documentation? if so may I ask you for a hint on where best to start?

scMarkus avatar May 15 '24 13:05 scMarkus

@scMarkus You'll need to run make generate-component-docs to update the component docs that are affected by this change.

tobz avatar May 21 '24 17:05 tobz

@tobz sorry for taking so long. I am now able to focus on this issue again.

From what I understand the rust specific part of adding meta data to a type by using mcros like #[configurable(metadata(docs::type_override = "ascii_char"))] seams to work reasonable. the generated json output does contain all of the needed information. What I think is missing, would be a correct handling of such information in the ruby script generating cue files. I have added a naive code branch handling my specific case. Pleas have a look at https://github.com/vectordotdev/vector/pull/20498/commits/d49d23985332700dda26c5de4bae34a0e252742e. The output does look like what I would expect in the cue files but I have not validated it in any rendered form since I would not know how.

I am quite certain that this is not the final solution we want to have so I am curious about your thoughts @tobz.

scMarkus avatar Jun 25 '24 12:06 scMarkus

@scMarkus Nice, the changes look good to me.

I thought we used to have a CI job that would publish a preview version of the docs based on the PR branch, but it seems like not... let me figure out the best way to preview the fully-generated docs and get back to you.

tobz avatar Jun 27 '24 14:06 tobz

So, looking at the HTML template that gets used to render this part of the configuration docs, I'm pretty confident this should just work as-is.

It will end up looking like this:

Screenshot 2024-06-27 at 10 52 28 AM

While ascii_char is maybe a little weird, I don't think we need to worry about that here. The end result it's going to properly show a comma (or whatever the character is) and that seems like a win to me.

tobz avatar Jun 27 '24 14:06 tobz

I have added the other two configuration parameters to our new ascii_char handling and added a note in the ruby script that the new behavior is meant for u8 data type only. From my point of view this would solve the issue as described in #18669.

scMarkus avatar Jun 27 '24 20:06 scMarkus

In regards to the latest failed test run. if I understand the output correctly, there is an issue with make check-docs. Running this command locally does not find such errors. Pleas let me know if I can change anything to make the tests pass.

local execution:

~/tools/vector $ make check-docs ENVIRONMENT=true CONTAINER_TOOL="podman"
Building the environment. (ENVIRONMENT_AUTOBUILD=true) This may take a few minutes...
podman build --quiet --tag docker.io/timberio/vector-dev:sha-3eadc96742a33754a5859203b58249f6a806972a --file scripts/environment/Dockerfile .
6a585b575749b9677fc886abdaeadb26a80751da2e29e2a7f1f764e2c81be7ef
Entering environment...
podman run --name vector-environment --rm --tty --init --interactive --env INSIDE_ENVIRONMENT=true --network host --mount type=bind,source=/home/markus/tools/vector,target=/git/vectordotdev/vector  --mount type=volume,source=vector-target,target=/git/vectordotdev/vector/target --mount type=volume,source=vector-cargo-cache,target=/root/.cargo --mount type=volume,source=vector-rustup-cache,target=/root/.rustup  docker.io/timberio/vector-dev:sha-3eadc96742a33754a5859203b58249f6a806972a cargo vdev check docs
Skipping cue files format validation - reserved for CI
Validating cue files correctness...
Success! The contents of the sources in the "./website/cue" directory are valid

scMarkus avatar Jul 02 '24 10:07 scMarkus

Thus far I feel positive about this pull request. @tobz you have approved it already as well. Is there anything left to do in your opinion?

scMarkus avatar Jul 11 '24 08:07 scMarkus

Sorry, this fell off my radar.

I agree that this is ready to go. 👍🏻

tobz avatar Jul 16 '24 12:07 tobz

Regression Detector Results

Run ID: 355f70c7-e696-4fe9-8943-3a22e8f9803c Metrics dashboard

Baseline: 1579627ee3c63347fa68fe8ab3e0105bbe6ff3d9 Comparison: 053474e4d76a358d448f722e5bf0d287d4121f6f

Performance changes are noted in the perf column of each table:

  • ✅ = significantly better comparison variant performance
  • ❌ = significantly worse comparison variant performance
  • ➖ = no significant change in performance

No significant changes in experiment optimization goals

Confidence level: 90.00% Effect size tolerance: |Δ mean %| ≥ 5.00%

There were no significant changes in experiment optimization goals at this confidence level and effect size tolerance.

Experiments ignored for regressions

Regressions in experiments with settings containing erratic: true are ignored.

perf experiment goal Δ mean % Δ mean % CI links
file_to_blackhole egress throughput -1.97 [-8.94, +5.01]

Fine details of change detection per experiment

perf experiment goal Δ mean % Δ mean % CI links
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput +2.59 [+2.46, +2.72]
syslog_log2metric_humio_metrics ingress throughput +2.24 [+2.11, +2.38]
syslog_humio_logs ingress throughput +1.96 [+1.83, +2.09]
datadog_agent_remap_datadog_logs ingress throughput +1.62 [+1.39, +1.85]
splunk_hec_route_s3 ingress throughput +1.58 [+1.27, +1.90]
fluent_elasticsearch ingress throughput +0.98 [+0.48, +1.47]
http_text_to_http_json ingress throughput +0.96 [+0.84, +1.08]
http_elasticsearch ingress throughput +0.90 [+0.70, +1.10]
http_to_http_acks ingress throughput +0.85 [-0.49, +2.18]
syslog_splunk_hec_logs ingress throughput +0.79 [+0.69, +0.89]
datadog_agent_remap_blackhole ingress throughput +0.44 [+0.34, +0.54]
datadog_agent_remap_blackhole_acks ingress throughput +0.25 [+0.15, +0.34]
otlp_http_to_blackhole ingress throughput +0.01 [-0.17, +0.18]
splunk_hec_to_splunk_hec_logs_acks ingress throughput +0.00 [-0.09, +0.10]
splunk_hec_indexer_ack_blackhole ingress throughput -0.02 [-0.10, +0.06]
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.02 [-0.13, +0.08]
syslog_log2metric_splunk_hec_metrics ingress throughput -0.09 [-0.20, +0.03]
http_to_http_json ingress throughput -0.10 [-0.18, -0.01]
otlp_grpc_to_blackhole ingress throughput -0.16 [-0.28, -0.03]
http_to_http_noack ingress throughput -0.16 [-0.27, -0.05]
http_to_s3 ingress throughput -0.61 [-0.88, -0.35]
syslog_loki ingress throughput -1.43 [-1.50, -1.35]
syslog_regex_logs2metric_ddmetrics ingress throughput -1.50 [-1.63, -1.36]
datadog_agent_remap_datadog_logs_acks ingress throughput -1.80 [-1.97, -1.63]
file_to_blackhole egress throughput -1.97 [-8.94, +5.01]
socket_to_socket_blackhole ingress throughput -3.15 [-3.21, -3.09]

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".

github-actions[bot] avatar Jul 16 '24 13:07 github-actions[bot]

Regression Detector Results

Run ID: 4a10494b-83b2-41e9-aa33-efd6452b6f0d Metrics dashboard

Baseline: 1579627ee3c63347fa68fe8ab3e0105bbe6ff3d9 Comparison: a94050efafc14493eec412796e19a2b91d729788

Performance changes are noted in the perf column of each table:

  • ✅ = significantly better comparison variant performance
  • ❌ = significantly worse comparison variant performance
  • ➖ = no significant change in performance

No significant changes in experiment optimization goals

Confidence level: 90.00% Effect size tolerance: |Δ mean %| ≥ 5.00%

There were no significant changes in experiment optimization goals at this confidence level and effect size tolerance.

Experiments ignored for regressions

Regressions in experiments with settings containing erratic: true are ignored.

perf experiment goal Δ mean % Δ mean % CI links
file_to_blackhole egress throughput +0.97 [-5.73, +7.67]

Fine details of change detection per experiment

perf experiment goal Δ mean % Δ mean % CI links
datadog_agent_remap_blackhole ingress throughput +1.74 [+1.64, +1.84]
syslog_log2metric_humio_metrics ingress throughput +1.70 [+1.56, +1.84]
file_to_blackhole egress throughput +0.97 [-5.73, +7.67]
fluent_elasticsearch ingress throughput +0.81 [+0.31, +1.30]
splunk_hec_route_s3 ingress throughput +0.54 [+0.22, +0.85]
syslog_loki ingress throughput +0.38 [+0.29, +0.47]
syslog_regex_logs2metric_ddmetrics ingress throughput +0.31 [+0.19, +0.44]
syslog_splunk_hec_logs ingress throughput +0.15 [+0.05, +0.25]
syslog_log2metric_splunk_hec_metrics ingress throughput +0.04 [-0.06, +0.14]
splunk_hec_to_splunk_hec_logs_acks ingress throughput +0.00 [-0.10, +0.10]
splunk_hec_indexer_ack_blackhole ingress throughput +0.00 [-0.08, +0.08]
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.00 [-0.10, +0.10]
otlp_grpc_to_blackhole ingress throughput -0.02 [-0.14, +0.10]
http_to_http_json ingress throughput -0.13 [-0.21, -0.06]
http_to_http_noack ingress throughput -0.19 [-0.30, -0.08]
datadog_agent_remap_datadog_logs_acks ingress throughput -0.45 [-0.66, -0.25]
datadog_agent_remap_blackhole_acks ingress throughput -0.56 [-0.66, -0.45]
http_elasticsearch ingress throughput -0.67 [-0.87, -0.48]
http_text_to_http_json ingress throughput -0.68 [-0.81, -0.54]
http_to_s3 ingress throughput -1.31 [-1.59, -1.03]
otlp_http_to_blackhole ingress throughput -1.36 [-1.53, -1.18]
http_to_http_acks ingress throughput -1.83 [-3.14, -0.51]
syslog_humio_logs ingress throughput -1.85 [-1.97, -1.73]
socket_to_socket_blackhole ingress throughput -2.07 [-2.15, -1.98]
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput -2.07 [-2.16, -1.98]
datadog_agent_remap_datadog_logs ingress throughput -3.54 [-3.77, -3.32]

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".

github-actions[bot] avatar Jul 16 '24 14:07 github-actions[bot]

No worries. Thanks for having this progressing :)

scMarkus avatar Jul 17 '24 07:07 scMarkus

Regression Detector Results

Run ID: f08b5ea8-d052-497c-bbac-21a583ae452c Metrics dashboard

Baseline: 7916ad5c55a8ad0265d58429272a9c0d1e6c9c2c Comparison: 5a10aa2b0556563d11244b04829a72d86a8e338b

Performance changes are noted in the perf column of each table:

  • ✅ = significantly better comparison variant performance
  • ❌ = significantly worse comparison variant performance
  • ➖ = no significant change in performance

No significant changes in experiment optimization goals

Confidence level: 90.00% Effect size tolerance: |Δ mean %| ≥ 5.00%

There were no significant changes in experiment optimization goals at this confidence level and effect size tolerance.

Experiments ignored for regressions

Regressions in experiments with settings containing erratic: true are ignored.

perf experiment goal Δ mean % Δ mean % CI links
file_to_blackhole egress throughput +15.40 [+7.78, +23.03]

Fine details of change detection per experiment

perf experiment goal Δ mean % Δ mean % CI links
file_to_blackhole egress throughput +15.40 [+7.78, +23.03]
http_to_http_acks ingress throughput +2.51 [+1.17, +3.86]
syslog_regex_logs2metric_ddmetrics ingress throughput +2.09 [+1.93, +2.25]
syslog_log2metric_splunk_hec_metrics ingress throughput +1.66 [+1.53, +1.78]
syslog_splunk_hec_logs ingress throughput +1.54 [+1.42, +1.66]
syslog_loki ingress throughput +0.85 [+0.77, +0.93]
splunk_hec_route_s3 ingress throughput +0.28 [-0.05, +0.61]
http_to_s3 ingress throughput +0.12 [-0.15, +0.39]
socket_to_socket_blackhole ingress throughput +0.08 [+0.03, +0.13]
splunk_hec_to_splunk_hec_logs_acks ingress throughput -0.01 [-0.13, +0.11]
fluent_elasticsearch ingress throughput -0.01 [-0.51, +0.49]
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.01 [-0.11, +0.09]
splunk_hec_indexer_ack_blackhole ingress throughput -0.03 [-0.12, +0.05]
http_to_http_noack ingress throughput -0.10 [-0.22, +0.02]
http_to_http_json ingress throughput -0.12 [-0.19, -0.04]
otlp_grpc_to_blackhole ingress throughput -0.15 [-0.27, -0.03]
syslog_log2metric_tag_cardinality_limit_blackhole ingress throughput -0.31 [-0.41, -0.20]
datadog_agent_remap_datadog_logs_acks ingress throughput -0.36 [-0.51, -0.20]
datadog_agent_remap_blackhole ingress throughput -0.45 [-0.55, -0.35]
otlp_http_to_blackhole ingress throughput -0.63 [-0.78, -0.48]
syslog_humio_logs ingress throughput -0.72 [-0.84, -0.59]
datadog_agent_remap_blackhole_acks ingress throughput -0.81 [-0.93, -0.70]
datadog_agent_remap_datadog_logs ingress throughput -1.23 [-1.44, -1.02]
http_text_to_http_json ingress throughput -1.67 [-1.83, -1.50]
syslog_log2metric_humio_metrics ingress throughput -1.77 [-1.93, -1.61]
http_elasticsearch ingress throughput -2.15 [-2.34, -1.96]

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".

github-actions[bot] avatar Jul 17 '24 13:07 github-actions[bot]