fix(codecs) csv documentation defaults as ascii_char
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 You'll need to run make generate-component-docs to update the component docs that are affected by this change.
@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 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.
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:
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.
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.
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
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?
Sorry, this fell off my radar.
I agree that this is ready to go. 👍🏻
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:
-
Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.
-
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.
-
Its configuration does not mark it "erratic".
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:
-
Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.
-
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.
-
Its configuration does not mark it "erratic".
No worries. Thanks for having this progressing :)
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:
-
Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.
-
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.
-
Its configuration does not mark it "erratic".