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(codecs): add support for protobuf decoding #18019

Merged
merged 8 commits into from
Jul 28, 2023

Conversation

Daniel599
Copy link
Contributor

Hi
addresses: #9744
please note some of the 'TODOs' where I would your feedback.

This PR adds support for choosing a protobuf decoder for a source(e.g kafka)
The user provides a protobuf desc file and a 'message type', each message within the topic should be of 'message type'

@bits-bot
Copy link

bits-bot commented Jul 18, 2023

CLA assistant check
All committers have signed the CLA.

@netlify
Copy link

netlify bot commented Jul 18, 2023

Deploy Preview for vector-project ready!

Name Link
🔨 Latest commit e53532d
🔍 Latest deploy log https://app.netlify.com/sites/vector-project/deploys/64c3faf27869c40008973103
😎 Deploy Preview https://deploy-preview-18019--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 Jul 18, 2023

Deploy Preview for vrl-playground ready!

Name Link
🔨 Latest commit e53532d
🔍 Latest deploy log https://app.netlify.com/sites/vrl-playground/deploys/64c3faf2e3799c0007b16707
😎 Deploy Preview https://deploy-preview-18019--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.

@jszwedko jszwedko requested a review from pront July 20, 2023 15:37
Copy link
Member

@pront pront left a comment

Choose a reason for hiding this comment

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

Thank you for submitting this work @Daniel599!

lib/codecs/Cargo.toml Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
src/components/validation/resources/mod.rs Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
impl ProtobufDeserializer {
/// Creates a new `ProtobufDeserializer`.
pub fn new(desc_file: String, message_type: String) -> Self {
// TODO: handle 'expect' in a better way
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@pront can you please advise me what to do here?
I don't see any Deserializer which returns a Result in its new method

Copy link
Member

Choose a reason for hiding this comment

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

So here, I would make new look like this:

pub fn new(message_descriptor: MessageDescriptor) -> Self {
   Self { message_descriptor }
}

This way new will always succeed.

Then do everything that can fail in a util:

fn get_message_descriptor(desc_file: String, message_type: String) -> Result<MessageDescriptor> 
{ ... }

This will also gives us more flexibility in how we create a MessageDescriptor.

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 made the requested change, but I still had to do unwrap() before the new. is that what you meant? I think I`m missing something

Copy link
Member

Choose a reason for hiding this comment

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

We should avoid the unwrap since it can turn a configuration problem into a crash. Instead we would need to pass the error up to the caller. In the case of the From implementation, that would need to be turned into a TryFrom, which can return a Result. At some point in the chain of callers there will be a method that already returns a Result and the error can be returned there, ideally with a context indicating why the error occurred.

lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
src/components/validation/resources/mod.rs Outdated Show resolved Hide resolved
impl ProtobufDeserializer {
/// Creates a new `ProtobufDeserializer`.
pub fn new(desc_file: String, message_type: String) -> Self {
// TODO: handle 'expect' in a better way
Copy link
Member

Choose a reason for hiding this comment

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

So here, I would make new look like this:

pub fn new(message_descriptor: MessageDescriptor) -> Self {
   Self { message_descriptor }
}

This way new will always succeed.

Then do everything that can fail in a util:

fn get_message_descriptor(desc_file: String, message_type: String) -> Result<MessageDescriptor> 
{ ... }

This will also gives us more flexibility in how we create a MessageDescriptor.

lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
Copy link
Member

@pront pront left a comment

Choose a reason for hiding this comment

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

Thank you again @Daniel599, this is starting to look great.

Only a few things left before we can get this in:

  • I replied to the following questions:
  • Commit my suggestions. We can evaluate performance again after we ensure correctness. It can be another PR later, you already did a lot work in this one.
  • Add test coverage for prost_reflect::Value::List and prost_reflect::Value::Map. Just to make sure we hit all those branches. I noticed in the docs that some functions like this one may panic.

lib/codecs/src/decoding/format/protobuf.rs Show resolved Hide resolved
lib/codecs/src/decoding/format/protobuf.rs Outdated Show resolved Hide resolved
pront
pront previously approved these changes Jul 25, 2023
config.desc_file.clone(),
config.message_type.clone(),
)
.unwrap();
Copy link
Member

Choose a reason for hiding this comment

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

A try_from might be better here.

@pront
Copy link
Member

pront commented Jul 27, 2023

@Daniel599 I tried to push a commit to fix the last remaining issues but I don't have permission to push. Can you merge this final-israel#1 to your branch?

pront
pront previously approved these changes Jul 27, 2023
@pront pront enabled auto-merge July 27, 2023 20:05
@Daniel599
Copy link
Contributor Author

@pront Do I need to run make generate-component-docs or should I rebase my branch?

impl ProtobufDeserializerConfig {
/// Build the `ProtobufDeserializer` from this configuration.
pub fn build(&self) -> ProtobufDeserializer {
Into::<ProtobufDeserializer>::into(self)
Copy link
Member

Choose a reason for hiding this comment

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

It's simpler to just use from here, which is what the above ends up calling anyways:

Suggested change
Into::<ProtobufDeserializer>::into(self)
ProtobufDeserializer::from(self)

Comment on lines 68 to 73
impl ProtobufDeserializerConfig {
/// Creates a new `ProtobufDeserializerConfig`.
pub fn new() -> Self {
Default::default()
}
}
Copy link
Member

Choose a reason for hiding this comment

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

nit: I don't see that this method is actually being called anywhere, and it just calls the default method anyways, so it seems fairly superfluous.

impl ProtobufDeserializer {
/// Creates a new `ProtobufDeserializer`.
pub fn new(desc_file: String, message_type: String) -> Self {
// TODO: handle 'expect' in a better way
Copy link
Member

Choose a reason for hiding this comment

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

We should avoid the unwrap since it can turn a configuration problem into a crash. Instead we would need to pass the error up to the caller. In the case of the From implementation, that would need to be turned into a TryFrom, which can return a Result. At some point in the chain of callers there will be a method that already returns a Result and the error can be returned there, ideally with a context indicating why the error occurred.

desc_file: String,
message_type: String,
) -> vector_common::Result<MessageDescriptor> {
let b = fs::read(desc_file.clone())
Copy link
Member

Choose a reason for hiding this comment

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

I think this can be done without a clone:

Suggested change
let b = fs::read(desc_file.clone())
let b = fs::read(Path::new(&desc_file))

#[derive(Debug, Clone, Default)]
pub struct ProtobufDeserializerConfig {
/// Path to desc file
desc_file: String,
Copy link
Member

Choose a reason for hiding this comment

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

File names should be stored in PathBuf type instead of strings to avoid corner cases of illegal filenames.

Copy link
Member

Choose a reason for hiding this comment

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

This is a great point. Changed the type.

Comment on lines 88 to 83
desc_file: String,
message_type: String,
Copy link
Member

Choose a reason for hiding this comment

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

This function doesn't need to take ownership of either string, so these can both be just &str. Using an &Path for the filename would be even better (see comment above).

Comment on lines 117 to 120
if let Some(timestamp_key) = log_schema().timestamp_key() {
let log = event.as_mut_log();
if !log.contains((PathPrefix::Event, timestamp_key)) {
log.insert((PathPrefix::Event, timestamp_key), timestamp);
Copy link
Member

Choose a reason for hiding this comment

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

This interface is changing (today even). See #18097

@pront
Copy link
Member

pront commented Jul 28, 2023

Hi @Daniel599, please allow me to push commits to this PR (or just keep approving my commits like yesterday), I will help with the remaining details. I will address all @bruceg comments and try to get this merged today!

@Daniel599
Copy link
Contributor Author

Hi @Daniel599, please allow me to push commits to this PR (or just keep approving my commits like yesterday), I will help with the remaining details. I will address all @bruceg comments and try to get this merged today!

Sorry but seems I cannot "allow edits" since it's an organization repository, see.
I`ll approve your PR.

pront
pront previously approved these changes Jul 28, 2023
Copy link
Member

@pront pront left a comment

Choose a reason for hiding this comment

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

Will follow-up with another PR to refactor build() to return a Result and avoid unwrap.

#[derive(Debug, Clone, Default)]
pub struct ProtobufDeserializerConfig {
/// Path to desc file
desc_file: String,
Copy link
Member

Choose a reason for hiding this comment

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

This is a great point. Changed the type.

Daniel599 and others added 6 commits July 28, 2023 12:13
code-review fixes: handle unwraps and fix support for empty buffer as a message, allowed in protobuf.
code-review fixes: use `kind::any()` instead of `kind::json()`.
use `unimplemented!()` instead of `todo!()`.
in tests, add checks for List and Map.
in `ProtobufDeserializer::new`, refactor out creation of MessageDescriptor.
run `cargo fmt`.
code-review fixes: apply suggested refactor to `to_vrl`, it's slightly slower, might improve in following PR.
@pront pront force-pushed the support_protobuf_decoding branch from af70e71 to e53532d Compare July 28, 2023 17:29
@pront pront requested a review from a team as a code owner July 28, 2023 17:29
@github-actions github-actions bot added the domain: external docs Anything related to Vector's external, public documentation label Jul 28, 2023
@pront pront disabled auto-merge July 28, 2023 17:32
Copy link
Member

@pront pront left a comment

Choose a reason for hiding this comment

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

regenerated the docs

@pront pront enabled auto-merge July 28, 2023 17:44
@pront pront added this pull request to the merge queue Jul 28, 2023
@github-actions
Copy link

Regression Detector Results

Run ID: 34f72bfe-3105-4e90-85fe-6a32487ef76a
Baseline: 8a2f8f6
Comparison: a06c711
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
http_text_to_http_json ingress throughput +5.29 100.00%
Fine details of change detection per experiment.
experiment goal Δ mean % Δ mean % CI confidence
http_text_to_http_json ingress throughput +5.29 [+5.22, +5.35] 100.00%
otlp_http_to_blackhole ingress throughput +2.76 [+2.60, +2.92] 100.00%
splunk_hec_route_s3 ingress throughput +2.38 [+2.24, +2.52] 100.00%
socket_to_socket_blackhole ingress throughput +2.36 [+2.31, +2.41] 100.00%
datadog_agent_remap_datadog_logs_acks ingress throughput +2.31 [+2.20, +2.42] 100.00%
syslog_log2metric_splunk_hec_metrics ingress throughput +2.15 [+2.06, +2.25] 100.00%
datadog_agent_remap_blackhole ingress throughput +1.78 [+1.69, +1.87] 100.00%
syslog_loki ingress throughput +1.64 [+1.55, +1.73] 100.00%
otlp_grpc_to_blackhole ingress throughput +1.47 [+1.37, +1.58] 100.00%
http_to_http_acks ingress throughput +1.27 [+0.03, +2.52] 80.92%
datadog_agent_remap_datadog_logs ingress throughput +0.99 [+0.87, +1.11] 100.00%
file_to_blackhole egress throughput +0.84 [-2.92, +4.61] 22.61%
http_to_s3 ingress throughput +0.52 [+0.32, +0.72] 99.91%
enterprise_http_to_http ingress throughput +0.06 [+0.02, +0.09] 94.39%
http_to_http_noack ingress throughput +0.04 [-0.02, +0.10] 65.44%
http_to_http_json ingress throughput +0.00 [-0.04, +0.04] 4.17%
fluent_elasticsearch ingress throughput -0.00 [-0.00, +0.00] 8.84%
splunk_hec_to_splunk_hec_logs_acks ingress throughput -0.00 [-0.06, +0.06] 1.81%
splunk_hec_indexer_ack_blackhole ingress throughput -0.01 [-0.05, +0.03] 20.22%
splunk_hec_to_splunk_hec_logs_noack ingress throughput -0.02 [-0.06, +0.03] 34.94%
datadog_agent_remap_blackhole_acks ingress throughput -0.17 [-0.27, -0.06] 95.85%
syslog_humio_logs ingress throughput -0.81 [-0.88, -0.75] 100.00%
syslog_splunk_hec_logs ingress throughput -1.52 [-1.59, -1.44] 100.00%
syslog_regex_logs2metric_ddmetrics ingress throughput -1.79 [-2.08, -1.51] 100.00%
syslog_log2metric_humio_metrics ingress throughput -3.78 [-3.86, -3.70] 100.00%

Merged via the queue into vectordotdev:master with commit a06c711 Jul 28, 2023
@pront pront deleted the support_protobuf_decoding branch July 28, 2023 19:09
@@ -95,6 +100,12 @@ base: components: sources: amqp: configuration: {
}
}
}
desc_file: {
Copy link
Member

Choose a reason for hiding this comment

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

Sorry, I didn't review this before but this desc_file option should be nested under a protobuf key like the gelf and json options you see here, are.

Copy link
Member

Choose a reason for hiding this comment

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

Opened #18111 to move it.

@@ -142,6 +142,7 @@ fn deserializer_config_to_serializer(config: &DeserializerConfig) -> encoding::S
// `message` field... but it's close enough for now.
DeserializerConfig::Bytes => SerializerConfig::Text(TextSerializerConfig::default()),
DeserializerConfig::Json { .. } => SerializerConfig::Json(JsonSerializerConfig::default()),
DeserializerConfig::Protobuf(_) => unimplemented!(),
Copy link
Member

Choose a reason for hiding this comment

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

@neuronull is this OK?

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for the call out. I think this is OK for now. We don't have a serializer for protobuf yet, so there isn't any alternative really. This is similar to the OctetCounting framer in the function below.
When we get to the validation of components that operate over protobuf, we will have to add a task to implement a protobuf external resource. It's possible we'd have to implement a protobuf serializer at that time, to get full coverage of said components.

Comment on lines +35 to +36
// TODO return a Result instead.
ProtobufDeserializer::try_from(self).unwrap()
Copy link
Member

Choose a reason for hiding this comment

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

I know we said we'll follow up on this TODO but I think we should have resolved it before this was merged since otherwise we have to keep track of it to resolve before the next release. To that end I created this issue to track it: #18110 and put it in a new 0.32.0 milestone to make sure we resolve it prior to the next release.

jszwedko added a commit that referenced this pull request Jul 29, 2023
github-merge-queue bot pushed a commit that referenced this pull request Aug 1, 2023
@jszwedko jszwedko mentioned this pull request Aug 4, 2023
@jszwedko jszwedko mentioned this pull request Aug 21, 2023
3 tasks
@neuronull neuronull mentioned this pull request Sep 1, 2023
6 tasks
aholmberg pushed a commit to aholmberg/vector that referenced this pull request Feb 14, 2024
# [1.33.0](answerbook/vector@v1.32.1...v1.33.0) (2024-01-03)

### Bug Fixes

* allow empty message_key value in config (vectordotdev#18091) [8a2f8f6](answerbook/vector@8a2f8f6) - GitHub
* **aws provider**: Don't unwap external_id (vectordotdev#18452) [77d12ee](answerbook/vector@77d12ee) - Jesse Szwedko
* **azure_blob sink**: Base Content-Type on encoder and not compression (vectordotdev#18184) [4a049d4](answerbook/vector@4a049d4) - GitHub
* **ci**: add missing env var (vectordotdev#17872) [7e6495c](answerbook/vector@7e6495c) - GitHub
* **ci**: address issues in integration test suite workflow (vectordotdev#17928) [8b2447a](answerbook/vector@8b2447a) - GitHub
* **ci**: Drop docker-compose from bootstrap install (vectordotdev#18407) [d9db2e0](answerbook/vector@d9db2e0) - Jesse Szwedko
* **ci**: fix gardener move blocked to triage on comment (vectordotdev#18126) [93b1945](answerbook/vector@93b1945) - GitHub
* **codecs**: Move protobuf codec options under a `protobuf` key (vectordotdev#18111) [36788d1](answerbook/vector@36788d1) - GitHub
* **component validation**: make tests deterministic through absolute comparisons instead of bounds checks (vectordotdev#17956) [52a8036](answerbook/vector@52a8036) - GitHub
* **config**: Fix TOML parsing of compression levels (vectordotdev#18173) [8fc574f](answerbook/vector@8fc574f) - GitHub
* **demo gcp_pubsub internal_metrics source throttle transform**: Fix `interval` fractional second parsing (vectordotdev#17917) [b44a431](answerbook/vector@b44a431) - GitHub
* **deps**: load default and legacy openssl providers (vectordotdev#18276) [8868b07](answerbook/vector@8868b07) - Jesse Szwedko
* **dev**: fix issues when using container tools and `cargo` is not installed locally (vectordotdev#18112) [36111b5](answerbook/vector@36111b5) - GitHub
* **dev**: fix Rust toolchain check in Makefile (vectordotdev#18218) [f77fd3d](answerbook/vector@f77fd3d) - GitHub
* **docs, syslog source**: Correct docs for `syslog_ip` (vectordotdev#18003) [a1d3c3a](answerbook/vector@a1d3c3a) - GitHub
* **docs**: add the 'http_client_requests_sent_total' (vectordotdev#18299) [2dcaf30](answerbook/vector@2dcaf30) - Jesse Szwedko
* make LogEvent index operator test only (vectordotdev#18185) [0c1cf23](answerbook/vector@0c1cf23) - GitHub
* **observability**: add all events that are being encoded (vectordotdev#18289) [c9ccee0](answerbook/vector@c9ccee0) - Jesse Szwedko
* **opentelemetry source**: Remove the 4MB default for gRPC request decoding (vectordotdev#18306) [56177eb](answerbook/vector@56177eb) - Jesse Szwedko
* propagate and display invalid JSON errors in VRL web playground (vectordotdev#17826) [8519cb1](answerbook/vector@8519cb1) - GitHub
* propagate config build error instead of panicking (vectordotdev#18124) [8022464](answerbook/vector@8022464) - GitHub
* **reload**: restart api server based on topology (vectordotdev#17958) [b00727e](answerbook/vector@b00727e) - GitHub
* **spelling**: add spell check exception (vectordotdev#17906) [c4827e4](answerbook/vector@c4827e4) - GitHub
* **splunk_hec source**: insert fields as event_path so names aren't parsed as a path (vectordotdev#17943) [1acf5b4](answerbook/vector@1acf5b4) - GitHub
* **syslog source, docs**: Fix docs for `host` field for syslog source (vectordotdev#18453) [dd460a0](answerbook/vector@dd460a0) - Jesse Szwedko
* **vdev**: Add `--features` with default features for vdev test (vectordotdev#17977) [eb4383f](answerbook/vector@eb4383f) - GitHub
* **vector sink**: Add DataLoss error code as non-retryable (vectordotdev#17904) [4ef0b17](answerbook/vector@4ef0b17) - GitHub
* **vector sink**: cert verification with proxy enabled (vectordotdev#17651) [45e24c7](answerbook/vector@45e24c7) - GitHub
* **vector source**: Remove the 4MB default for requests (vectordotdev#18186) [4cc9cdf](answerbook/vector@4cc9cdf) - GitHub
* **website**: Fix installer list for MacOS (vectordotdev#18364) [3b9144c](answerbook/vector@3b9144c) - Jesse Szwedko
* **websocket sink**: send encoded message as binary frame (vectordotdev#18060) [b85f4f9](answerbook/vector@b85f4f9) - GitHub

### Chores

* Add licenses to packages (vectordotdev#18006) [db9e47f](answerbook/vector@db9e47f) - GitHub
* add more direct regression case for s3 sink (vectordotdev#18082) [c592cb1](answerbook/vector@c592cb1) - GitHub
* added sink review checklist (vectordotdev#17799) [7f45949](answerbook/vector@7f45949) - GitHub
* **api**: Refactor top and tap for library use (vectordotdev#18129) [600f819](answerbook/vector@600f819) - GitHub
* **aws provider, external_docs**: Update the AWS authentication documentation (vectordotdev#18492) [9356c56](answerbook/vector@9356c56) - Jesse Szwedko
* **azure_monitor_logs sink**: refactor to new sink style (vectordotdev#18172) [0aeb143](answerbook/vector@0aeb143) - GitHub
* **CI**: Add missing `--use-consignor` flag on `smp` call (vectordotdev#17966) [7cae000](answerbook/vector@7cae000) - GitHub
* **ci**: Bump docker/setup-buildx-action from 2.8.0 to 2.9.0 (vectordotdev#17907) [251c4c4](answerbook/vector@251c4c4) - GitHub
* **ci**: Bump docker/setup-buildx-action from 2.9.0 to 2.9.1 (vectordotdev#17955) [77ffce8](answerbook/vector@77ffce8) - GitHub
* **ci**: check for team membership on secret-requiring int tests (vectordotdev#17909) [9765809](answerbook/vector@9765809) - GitHub
* **ci**: exclude protobuf files from spell checking (vectordotdev#18152) [34eaf43](answerbook/vector@34eaf43) - GitHub
* **ci**: Feature branch should be checked against `CURRENT_BRANCH` [4742c2f](answerbook/vector@4742c2f) - Darin Spivey [LOG-18882](https://logdna.atlassian.net/browse/LOG-18882)
* **ci**: fix gardener issues comment workflow (vectordotdev#17868) [e9f21a9](answerbook/vector@e9f21a9) - GitHub
* **ci**: fix gardener issues comment workflow pt 2 (vectordotdev#17886) [57ea2b3](answerbook/vector@57ea2b3) - GitHub
* **ci**: fix gardener issues comment workflow pt 3 (vectordotdev#17903) [98ca627](answerbook/vector@98ca627) - GitHub
* **ci**: Fix integration test filter generation (vectordotdev#17914) [528fac3](answerbook/vector@528fac3) - GitHub
* **ci**: fix k8s validate comment job logic (vectordotdev#17841) [99502bb](answerbook/vector@99502bb) - GitHub
* **ci**: remove kinetic as it's no longer supported (vectordotdev#18540) [beb74c1](answerbook/vector@beb74c1) - Jesse Szwedko
* **ci**: Remove path filter that runs all integration tests (vectordotdev#17908) [70632b7](answerbook/vector@70632b7) - GitHub
* **ci**: save time int test workflow merge queue (vectordotdev#17869) [9581b35](answerbook/vector@9581b35) - GitHub
* **ci**: Set HOMEBREW_NO_INSTALL_FROM_API in CI (vectordotdev#17867) [36174e2](answerbook/vector@36174e2) - GitHub
* **CI**: Single Machine Performance: turn off consignor (vectordotdev#17967) [1dfc3e1](answerbook/vector@1dfc3e1) - GitHub
* **CI**: Switch regression detector to new API and analysis service (vectordotdev#17912) [f808ea2](answerbook/vector@f808ea2) - GitHub
* **CI**: Update `smp` to version 0.9.1 (vectordotdev#17964) [98e47c1](answerbook/vector@98e47c1) - GitHub
* **ci**: Use GitHub App token for team membership rather than user PAT (vectordotdev#17936) [7774c49](answerbook/vector@7774c49) - GitHub
* **codecs**: Update syslog_loose to properly handle escapes (vectordotdev#18114) [b009e4d](answerbook/vector@b009e4d) - GitHub
* **core**: Expose shutdown errors (vectordotdev#18153) [cd8c8b1](answerbook/vector@cd8c8b1) - GitHub
* **deps**: Bump `nkeys` to 0.3.2 (vectordotdev#18264) [a1dfd54](answerbook/vector@a1dfd54) - Jesse Szwedko
* **deps**: Bump anyhow from 1.0.71 to 1.0.72 (vectordotdev#17986) [9a6ffad](answerbook/vector@9a6ffad) - GitHub
* **deps**: Bump apache-avro from 0.14.0 to 0.15.0 (vectordotdev#17931) [d5b7fe6](answerbook/vector@d5b7fe6) - GitHub
* **deps**: Bump assert_cmd from 2.0.11 to 2.0.12 (vectordotdev#17982) [fde77bd](answerbook/vector@fde77bd) - GitHub
* **deps**: Bump async_graphql, async_graphql_warp from 5.0.10 to 6.0.0 (vectordotdev#18122) [7df6af7](answerbook/vector@7df6af7) - GitHub
* **deps**: Bump async-compression from 0.4.0 to 0.4.1 (vectordotdev#17932) [5b1219f](answerbook/vector@5b1219f) - GitHub
* **deps**: Bump async-trait from 0.1.68 to 0.1.71 (vectordotdev#17881) [53b2854](answerbook/vector@53b2854) - GitHub
* **deps**: Bump async-trait from 0.1.71 to 0.1.72 (vectordotdev#18053) [bbe2c74](answerbook/vector@bbe2c74) - GitHub
* **deps**: Bump async-trait from 0.1.72 to 0.1.73 (vectordotdev#18235) [20fa1bf](answerbook/vector@20fa1bf) - GitHub
* **deps**: Bump axum from 0.6.18 to 0.6.19 (vectordotdev#18002) [52ac10a](answerbook/vector@52ac10a) - GitHub
* **deps**: Bump axum from 0.6.19 to 0.6.20 (vectordotdev#18154) [0ddd221](answerbook/vector@0ddd221) - GitHub
* **deps**: Bump bitmask-enum from 2.1.0 to 2.2.0 (vectordotdev#17833) [fc62e9c](answerbook/vector@fc62e9c) - GitHub
* **deps**: Bump bitmask-enum from 2.2.0 to 2.2.1 (vectordotdev#17921) [6326f37](answerbook/vector@6326f37) - GitHub
* **deps**: Bump bitmask-enum from 2.2.1 to 2.2.2 (vectordotdev#18236) [851e99c](answerbook/vector@851e99c) - GitHub
* **deps**: Bump bstr from 1.5.0 to 1.6.0 (vectordotdev#17877) [17ccc56](answerbook/vector@17ccc56) - GitHub
* **deps**: Bump clap from 4.3.19 to 4.3.21 (vectordotdev#18178) [0ae3d51](answerbook/vector@0ae3d51) - GitHub
* **deps**: Bump clap_complete from 4.3.1 to 4.3.2 (vectordotdev#17878) [2126707](answerbook/vector@2126707) - GitHub
* **deps**: Bump colored from 2.0.0 to 2.0.4 (vectordotdev#17876) [93f8144](answerbook/vector@93f8144) - GitHub
* **deps**: Bump console-subscriber from 0.1.9 to 0.1.10 (vectordotdev#17844) [f74d5dd](answerbook/vector@f74d5dd) - GitHub
* **deps**: Bump darling from 0.20.1 to 0.20.3 (vectordotdev#17969) [656b1fe](answerbook/vector@656b1fe) - GitHub
* **deps**: Bump dashmap from 5.4.0 to 5.5.0 (vectordotdev#17938) [b535d18](answerbook/vector@b535d18) - GitHub
* **deps**: Bump dyn-clone from 1.0.11 to 1.0.12 (vectordotdev#17987) [81de3e5](answerbook/vector@81de3e5) - GitHub
* **deps**: Bump enum_dispatch from 0.3.11 to 0.3.12 (vectordotdev#17879) [bf1407c](answerbook/vector@bf1407c) - GitHub
* **deps**: Bump gloo-utils from 0.1.7 to 0.2.0 (vectordotdev#18227) [e61c14f](answerbook/vector@e61c14f) - GitHub
* **deps**: Bump governor from 0.5.1 to 0.6.0 (vectordotdev#17960) [467baab](answerbook/vector@467baab) - GitHub
* **deps**: Bump indicatif from 0.17.5 to 0.17.6 (vectordotdev#18146) [a7c95dd](answerbook/vector@a7c95dd) - GitHub
* **deps**: Bump indoc from 2.0.1 to 2.0.2 (vectordotdev#17843) [ed5bc3a](answerbook/vector@ed5bc3a) - GitHub
* **deps**: Bump indoc from 2.0.2 to 2.0.3 (vectordotdev#17996) [3c25758](answerbook/vector@3c25758) - GitHub
* **deps**: Bump infer from 0.14.0 to 0.15.0 (vectordotdev#17860) [97f4433](answerbook/vector@97f4433) - GitHub
* **deps**: Bump inventory from 0.3.10 to 0.3.11 (vectordotdev#18070) [d8f211e](answerbook/vector@d8f211e) - GitHub
* **deps**: Bump inventory from 0.3.6 to 0.3.8 (vectordotdev#17842) [bf2f975](answerbook/vector@bf2f975) - GitHub
* **deps**: Bump inventory from 0.3.8 to 0.3.9 (vectordotdev#17995) [9c59fea](answerbook/vector@9c59fea) - GitHub
* **deps**: Bump inventory from 0.3.9 to 0.3.10 (vectordotdev#18064) [684e43f](answerbook/vector@684e43f) - GitHub
* **deps**: Bump lapin from 2.2.1 to 2.3.1 (vectordotdev#17974) [38719a3](answerbook/vector@38719a3) - GitHub
* **deps**: Bump log from 0.4.19 to 0.4.20 (vectordotdev#18237) [cb007fe](answerbook/vector@cb007fe) - GitHub
* **deps**: Bump lru from 0.10.1 to 0.11.0 (vectordotdev#17945) [4d4b393](answerbook/vector@4d4b393) - GitHub
* **deps**: Bump metrics from 0.21.0 to 0.21.1 (vectordotdev#17836) [c8e1267](answerbook/vector@c8e1267) - GitHub
* **deps**: Bump metrics-util from 0.15.0 to 0.15.1 (vectordotdev#17835) [f91d1b2](answerbook/vector@f91d1b2) - GitHub
* **deps**: Bump nkeys from 0.3.0 to 0.3.1 (vectordotdev#18056) [087a0ac](answerbook/vector@087a0ac) - GitHub
* **deps**: Bump no-proxy from 0.3.2 to 0.3.3 (vectordotdev#18094) [9458b6c](answerbook/vector@9458b6c) - GitHub
* **deps**: Bump num-traits from 0.2.15 to 0.2.16 (vectordotdev#18039) [4de89f2](answerbook/vector@4de89f2) - GitHub
* **deps**: Bump opendal from 0.38.0 to 0.38.1 (vectordotdev#17999) [90f494c](answerbook/vector@90f494c) - GitHub
* **deps**: Bump OpenSSL base version to 3.1.* (vectordotdev#17669) [8454a6f](answerbook/vector@8454a6f) - GitHub
* **deps**: Bump openssl from 0.10.55 to 0.10.56 (vectordotdev#18170) [09610b3](answerbook/vector@09610b3) - GitHub
* **deps**: Bump paste from 1.0.12 to 1.0.13 (vectordotdev#17846) [51d8497](answerbook/vector@51d8497) - GitHub
* **deps**: Bump paste from 1.0.13 to 1.0.14 (vectordotdev#17991) [a36d36e](answerbook/vector@a36d36e) - GitHub
* **deps**: Bump pin-project from 1.1.1 to 1.1.2 (vectordotdev#17837) [17e6632](answerbook/vector@17e6632) - GitHub
* **deps**: Bump pin-project from 1.1.2 to 1.1.3 (vectordotdev#18169) [e125eee](answerbook/vector@e125eee) - GitHub
* **deps**: Bump proc-macro2 from 1.0.63 to 1.0.64 (vectordotdev#17922) [22b6c2b](answerbook/vector@22b6c2b) - GitHub
* **deps**: Bump proc-macro2 from 1.0.64 to 1.0.66 (vectordotdev#17989) [fbc0308](answerbook/vector@fbc0308) - GitHub
* **deps**: Bump quote from 1.0.29 to 1.0.31 (vectordotdev#17990) [6e552f0](answerbook/vector@6e552f0) - GitHub
* **deps**: Bump quote from 1.0.31 to 1.0.32 (vectordotdev#18069) [dc2348a](answerbook/vector@dc2348a) - GitHub
* **deps**: Bump rdkafka from 0.32.2 to 0.33.2 (vectordotdev#17891) [c8deeda](answerbook/vector@c8deeda) - GitHub
* **deps**: Bump redis from 0.23.0 to 0.23.1 (vectordotdev#18107) [48abad4](answerbook/vector@48abad4) - GitHub
* **deps**: Bump redis from 0.23.1 to 0.23.2 (vectordotdev#18234) [ec3b440](answerbook/vector@ec3b440) - GitHub
* **deps**: Bump regex from 1.8.4 to 1.9.0 (vectordotdev#17874) [cb950b0](answerbook/vector@cb950b0) - GitHub
* **deps**: Bump regex from 1.9.0 to 1.9.1 (vectordotdev#17915) [bc5822c](answerbook/vector@bc5822c) - GitHub
* **deps**: Bump regex from 1.9.1 to 1.9.3 (vectordotdev#18167) [00037b0](answerbook/vector@00037b0) - GitHub
* **deps**: Bump rmp-serde from 1.1.1 to 1.1.2 (vectordotdev#18054) [497fdce](answerbook/vector@497fdce) - GitHub
* **deps**: Bump roaring from 0.10.1 to 0.10.2 (vectordotdev#18079) [f6c53d0](answerbook/vector@f6c53d0) - GitHub
* **deps**: Bump ryu from 1.0.13 to 1.0.14 (vectordotdev#17848) [4613b36](answerbook/vector@4613b36) - GitHub
* **deps**: Bump ryu from 1.0.14 to 1.0.15 (vectordotdev#17993) [f53c687](answerbook/vector@f53c687) - GitHub
* **deps**: Bump schannel from 0.1.21 to 0.1.22 (vectordotdev#17850) [ae59be6](answerbook/vector@ae59be6) - GitHub
* **deps**: Bump security-framework from 2.9.1 to 2.9.2 (vectordotdev#18051) [b305334](answerbook/vector@b305334) - GitHub
* **deps**: Bump semver from 1.0.17 to 1.0.18 (vectordotdev#17998) [ca368d8](answerbook/vector@ca368d8) - GitHub
* **deps**: Bump semver from 5.7.1 to 5.7.2 in /website (vectordotdev#17937) [784f3fe](answerbook/vector@784f3fe) - GitHub
* **deps**: Bump serde from 1.0.167 to 1.0.168 (vectordotdev#17920) [3989791](answerbook/vector@3989791) - GitHub
* **deps**: Bump serde from 1.0.168 to 1.0.171 (vectordotdev#17976) [66f4838](answerbook/vector@66f4838) - GitHub
* **deps**: Bump serde from 1.0.171 to 1.0.173 (vectordotdev#18032) [b36c531](answerbook/vector@b36c531) - GitHub
* **deps**: Bump serde from 1.0.173 to 1.0.174 (vectordotdev#18050) [437cad6](answerbook/vector@437cad6) - GitHub
* **deps**: Bump serde from 1.0.174 to 1.0.175 (vectordotdev#18071) [16a42ed](answerbook/vector@16a42ed) - GitHub
* **deps**: Bump serde from 1.0.175 to 1.0.180 (vectordotdev#18127) [e6f2ccc](answerbook/vector@e6f2ccc) - GitHub
* **deps**: Bump serde from 1.0.180 to 1.0.181 (vectordotdev#18155) [2c51c5c](answerbook/vector@2c51c5c) - GitHub
* **deps**: Bump serde from 1.0.181 to 1.0.183 (vectordotdev#18171) [6036d5c](answerbook/vector@6036d5c) - GitHub
* **deps**: Bump serde_bytes from 0.11.11 to 0.11.12 (vectordotdev#17988) [04f9ddc](answerbook/vector@04f9ddc) - GitHub
* **deps**: Bump serde_bytes from 0.11.9 to 0.11.11 (vectordotdev#17898) [b262316](answerbook/vector@b262316) - GitHub
* **deps**: Bump serde_json from 1.0.100 to 1.0.102 (vectordotdev#17948) [4a377a7](answerbook/vector@4a377a7) - GitHub
* **deps**: Bump serde_json from 1.0.102 to 1.0.103 (vectordotdev#17992) [0ebe7a7](answerbook/vector@0ebe7a7) - GitHub
* **deps**: Bump serde_json from 1.0.103 to 1.0.104 (vectordotdev#18095) [00ed120](answerbook/vector@00ed120) - GitHub
* **deps**: Bump serde_json from 1.0.99 to 1.0.100 (vectordotdev#17859) [1a427ed](answerbook/vector@1a427ed) - GitHub
* **deps**: Bump serde_with from 3.0.0 to 3.1.0 (vectordotdev#18004) [39a2bf5](answerbook/vector@39a2bf5) - GitHub
* **deps**: Bump serde_with from 3.1.0 to 3.2.0 (vectordotdev#18162) [be551c8](answerbook/vector@be551c8) - GitHub
* **deps**: Bump serde_yaml from 0.9.22 to 0.9.24 (vectordotdev#18007) [3b91662](answerbook/vector@3b91662) - GitHub
* **deps**: Bump serde_yaml from 0.9.24 to 0.9.25 (vectordotdev#18040) [7050b7e](answerbook/vector@7050b7e) - GitHub
* **deps**: Bump smallvec from 1.10.0 to 1.11.0 (vectordotdev#17880) [46dc18a](answerbook/vector@46dc18a) - GitHub
* **deps**: Bump snafu from 0.7.4 to 0.7.5 (vectordotdev#17919) [49714cf](answerbook/vector@49714cf) - GitHub
* **deps**: Bump strip-ansi-escapes from 0.1.1 to 0.2.0 (vectordotdev#18203) [8bbe6a6](answerbook/vector@8bbe6a6) - GitHub
* **deps**: Bump syn from 2.0.23 to 2.0.25 (vectordotdev#17970) [5dfede4](answerbook/vector@5dfede4) - GitHub
* **deps**: Bump syn from 2.0.25 to 2.0.26 (vectordotdev#17994) [caf6103](answerbook/vector@caf6103) - GitHub
* **deps**: Bump syn from 2.0.26 to 2.0.27 (vectordotdev#18042) [983a92a](answerbook/vector@983a92a) - GitHub
* **deps**: Bump syn from 2.0.27 to 2.0.28 (vectordotdev#18117) [d3e5128](answerbook/vector@d3e5128) - GitHub
* **deps**: Bump thiserror from 1.0.40 to 1.0.43 (vectordotdev#17900) [ea0f5b1](answerbook/vector@ea0f5b1) - GitHub
* **deps**: Bump thiserror from 1.0.43 to 1.0.44 (vectordotdev#18052) [ee2396f](answerbook/vector@ee2396f) - GitHub
* **deps**: Bump tikv-jemallocator from 0.5.0 to 0.5.4 (vectordotdev#18102) [564104e](answerbook/vector@564104e) - GitHub
* **deps**: Bump to syn 2, serde_with 3, darling 0.20, and serde_derive_internals 0.28 (vectordotdev#17930) [3921a24](answerbook/vector@3921a24) - GitHub
* **deps**: Bump tokio from 1.29.0 to 1.29.1 (vectordotdev#17811) [0454d9d](answerbook/vector@0454d9d) - GitHub
* **deps**: Bump tokio from 1.29.1 to 1.30.0 (vectordotdev#18202) [92c2b9c](answerbook/vector@92c2b9c) - GitHub
* **deps**: Bump tokio-tungstenite from 0.19.0 to 0.20.0 (vectordotdev#18065) [3968325](answerbook/vector@3968325) - GitHub
* **deps**: Bump toml from 0.7.5 to 0.7.6 (vectordotdev#17875) [44d3a8c](answerbook/vector@44d3a8c) - GitHub
* **deps**: Bump tower-http from 0.4.1 to 0.4.2 (vectordotdev#18030) [9b4cd44](answerbook/vector@9b4cd44) - GitHub
* **deps**: Bump tower-http from 0.4.2 to 0.4.3 (vectordotdev#18055) [f1d4196](answerbook/vector@f1d4196) - GitHub
* **deps**: Bump typetag from 0.2.10 to 0.2.11 (vectordotdev#18048) [5bccafe](answerbook/vector@5bccafe) - GitHub
* **deps**: Bump typetag from 0.2.11 to 0.2.12 (vectordotdev#18066) [b70074c](answerbook/vector@b70074c) - GitHub
* **deps**: Bump typetag from 0.2.8 to 0.2.9 (vectordotdev#17882) [b10d070](answerbook/vector@b10d070) - GitHub
* **deps**: Bump typetag from 0.2.9 to 0.2.10 (vectordotdev#17968) [f4b1111](answerbook/vector@f4b1111) - GitHub
* **deps**: Bump uuid from 1.4.0 to 1.4.1 (vectordotdev#18001) [60e765d](answerbook/vector@60e765d) - GitHub
* **deps**: Bump zstd from 0.12.3+zstd.1.5.2 to 0.12.4 (vectordotdev#18031) [752056c](answerbook/vector@752056c) - GitHub
* **deps**: Remove an unneeded advisory ignore (vectordotdev#18226) [01295b0](answerbook/vector@01295b0) - GitHub
* **deps**: Swap out bloom crate for bloomy (vectordotdev#17911) [d592b0c](answerbook/vector@d592b0c) - GitHub
* **deps**: Swap tui crate for ratatui (vectordotdev#18225) [8838faf](answerbook/vector@8838faf) - GitHub
* **deps**: Update to Rust 1.71.0 (vectordotdev#18075) [1dd505f](answerbook/vector@1dd505f) - GitHub
* **deps**: Update tokio-util fork to 0.7.8 (vectordotdev#18078) [421b421](answerbook/vector@421b421) - GitHub
* **deps**: Upgrade debian usages to use bookworm (vectordotdev#18057) [fecca5e](answerbook/vector@fecca5e) - GitHub
* **deps**: Upgrade to Rust 1.71.1 (vectordotdev#18221) [eaed0a8](answerbook/vector@eaed0a8) - GitHub
* **deps**: Upgrading version of lading used (vectordotdev#18210) [91e48f6](answerbook/vector@91e48f6) - GitHub
* **dev**: Fix package install in Tiltfile (vectordotdev#18198) [f39a0e9](answerbook/vector@f39a0e9) - GitHub
* **dev**: Install dd-rust-license-tool from crates.io (vectordotdev#18025) [7d0db6b](answerbook/vector@7d0db6b) - GitHub
* **dev**: Mark loki-logproto crate as unpublished (vectordotdev#17979) [5dd2084](answerbook/vector@5dd2084) - GitHub
* **docs**: Add macOS troubleshooting section to VRL web playground (vectordotdev#17824) [0fbdb33](answerbook/vector@0fbdb33) - GitHub
* **docs**: Fix links in CONTRIBUTING.md (vectordotdev#18061) [250cc95](answerbook/vector@250cc95) - GitHub
* **docs**: Remove mentions of deprecated transforms from guides (vectordotdev#17933) [37fb02b](answerbook/vector@37fb02b) - GitHub
* **external docs**: update sink tutorials with Data Volume tag changes (vectordotdev#18148) [b2d23a8](answerbook/vector@b2d23a8) - GitHub
* Install script supports Apple ARM with Rosetta (vectordotdev#18016) [fd10e69](answerbook/vector@fd10e69) - GitHub
* **observability**: add tests to sinks for Data Volume tags (vectordotdev#17853) [4915b42](answerbook/vector@4915b42) - GitHub
* **observability**: consolidate `EventCountTags` with `TaggedEventsSent` (vectordotdev#17865) [81f5c50](answerbook/vector@81f5c50) - GitHub
* **observability**: count byte_size after transforming event (vectordotdev#17941) [0bf6abd](answerbook/vector@0bf6abd) - GitHub
* **observability**: Fix a couple typos with the registered event cache (vectordotdev#17809) [205300b](answerbook/vector@205300b) - GitHub
* **releasing**: Add 0.32.0 highlight for legacy OpenSSL provider deprecation (vectordotdev#18263) [1a32e96](answerbook/vector@1a32e96) - Jesse Szwedko
* **releasing**: Add known issues for v0.32.0 (vectordotdev#18298) [38e95b5](answerbook/vector@38e95b5) - Jesse Szwedko
* **releasing**: Add note about protobuf codec addition for 0.32.0 release (vectordotdev#18275) [91f7612](answerbook/vector@91f7612) - Jesse Szwedko
* **releasing**: Add upgrade note for 0.31.0 about S3 path changes (vectordotdev#17934) [f8461cb](answerbook/vector@f8461cb) - GitHub
* **releasing**: Bump Vector to 0.32.0 (vectordotdev#17887) [9c0d2f2](answerbook/vector@9c0d2f2) - GitHub
* **releasing**: Fix link in v0.31.0 release docs (vectordotdev#17888) [1260c83](answerbook/vector@1260c83) - GitHub
* **releasing**: Fix markdown syntax in minor release template (vectordotdev#17890) [0735ffe](answerbook/vector@0735ffe) - GitHub
* **releasing**: Prepare v0.31.0 release [aeccd26](answerbook/vector@aeccd26) - Jesse Szwedko
* **releasing**: Prepare v0.32.0 release [1b403e1](answerbook/vector@1b403e1) - Jesse Szwedko
* **releasing**: Prepare v0.32.1 release [9965884](answerbook/vector@9965884) - Jesse Szwedko
* **releasing**: Prepare v0.32.2 release [0982551](answerbook/vector@0982551) - Jesse Szwedko
* **releasing**: Regenerate k8s manifests with v0.23.0 of the chart (vectordotdev#17892) [604fea0](answerbook/vector@604fea0) - GitHub
* **releasing**: Run hadolint on distributed Dockerfiles (vectordotdev#18224) [ad08d01](answerbook/vector@ad08d01) - GitHub
* replace path tuples with actual target paths (vectordotdev#18139) [8068f1d](answerbook/vector@8068f1d) - GitHub
* replace various string paths with actual paths (vectordotdev#18109) [d8eefe3](answerbook/vector@d8eefe3) - GitHub
* **security**: Make the warning for the deprecated OpenSSL provider more verbose (vectordotdev#18278) [042fb51](answerbook/vector@042fb51) - Jesse Szwedko
* separate hanwritten and generated files in web-playground (vectordotdev#17871) [9ec0443](answerbook/vector@9ec0443) - GitHub
* stop ignoring topology test (vectordotdev#17953) [a05542a](answerbook/vector@a05542a) - GitHub
* update `rustls-webpki` due to security advisory (vectordotdev#18344) [1cb51a4](answerbook/vector@1cb51a4) - Jesse Szwedko
* Update `smp` to its latest released version (vectordotdev#18204) [7603d28](answerbook/vector@7603d28) - GitHub

### Features

* **adaptive_concurrency**: support configuring the initial ARC limit (vectordotdev#18175) [3b53bcd](answerbook/vector@3b53bcd) - GitHub
* add support for `external_id` in AWS assume role (vectordotdev#17743) [689a79e](answerbook/vector@689a79e) - GitHub
* **clickhouse sink**: make `database` and `table` templateable (vectordotdev#18005) [536a7f1](answerbook/vector@536a7f1) - GitHub
* **codecs**: add support for protobuf decoding (vectordotdev#18019) [a06c711](answerbook/vector@a06c711) - GitHub
* **component validation**: validate `component_errors_total` for sources (vectordotdev#17965) [aa60520](answerbook/vector@aa60520) - GitHub
* **deps, vrl**: Update VRL to 0.6.0 (vectordotdev#18150) [adfef2e](answerbook/vector@adfef2e) - GitHub
* emit an error if the condition return type is not a boolean (vectordotdev#18196) [caf6103](answerbook/vector@caf6103) - GitHub
* LogSchema metadata key refacoring (vectordotdev#18099) [a8bb9f4](answerbook/vector@a8bb9f4) - GitHub
* Migrate `LogSchema` `source_type_key` to new lookup code (vectordotdev#17947) [d29424d](answerbook/vector@d29424d) - GitHub
* Migrate LogSchema::host_key to new lookup code (vectordotdev#17972) [32950d8](answerbook/vector@32950d8) - GitHub
* Migrate LogSchema::message_key to new lookup code (vectordotdev#18024) [0f14c0d](answerbook/vector@0f14c0d) - GitHub
* Migrate LogSchema::metadata key to new lookup code (vectordotdev#18058) [8663602](answerbook/vector@8663602) - GitHub
* migrate to `async_nats` client (vectordotdev#18165) [483e46f](answerbook/vector@483e46f) - GitHub
* **new sink**: Adding greptimedb metrics sink (vectordotdev#17198) [98f44ae](answerbook/vector@98f44ae) - GitHub
* **new sink**: Initial `datadog_events` sink (vectordotdev#7678) [53fc86a](answerbook/vector@53fc86a) - Jesse Szwedko
* Refactor 'event.get()' to use path types (vectordotdev#18160) [e476e12](answerbook/vector@e476e12) - GitHub
* Refactor dnstap to use 'OwnedValuePath's (vectordotdev#18212) [ca7fa05](answerbook/vector@ca7fa05) - GitHub
* Refactor TraceEvent insert to use TargetPath compatible types (vectordotdev#18090) [f015b29](answerbook/vector@f015b29) - GitHub
* replace LogEvent 'String's with '&OwnedTargetPath's (vectordotdev#18084) [065eecb](answerbook/vector@065eecb) - GitHub
* replace tuples with &OwnedTargetPath wherever possible (vectordotdev#18097) [28f5c23](answerbook/vector@28f5c23) - GitHub
* switch to crates.io release of Azure SDK (vectordotdev#18166) [3c535ec](answerbook/vector@3c535ec) - GitHub

### Miscellaneous

* Merge pull request vectordotdev#379 from answerbook/feature/LOG-18882 [8bd9860](answerbook/vector@8bd9860) - GitHub [LOG-18882](https://logdna.atlassian.net/browse/LOG-18882)
* Merge branch 'master' into feature/LOG-18882 [d217387](answerbook/vector@d217387) - Darin Spivey [LOG-18882](https://logdna.atlassian.net/browse/LOG-18882)
* Merge tag 'v0.32.2' into feature/LOG-18882 [c05f969](answerbook/vector@c05f969) - Darin Spivey [LOG-18882](https://logdna.atlassian.net/browse/LOG-18882)
* Managed by Terraform provider [92e320a](answerbook/vector@92e320a) - Terraform
* 0.32.0.cue typo (vectordotdev#18270) [0f7d6e6](answerbook/vector@0f7d6e6) - Jesse Szwedko
* add PGO information (vectordotdev#18369) [3040ae2](answerbook/vector@3040ae2) - Jesse Szwedko
* check VRL conditions return type at compile time (vectordotdev#17894) [fa489f8](answerbook/vector@fa489f8) - GitHub
* **ci**: combine build steps for integration test workflows (vectordotdev#17724) [911477a](answerbook/vector@911477a) - GitHub
* describe the difference between configuration fields and runtime flags (vectordotdev#17784) [01e2dfa](answerbook/vector@01e2dfa) - GitHub
* **elasticsearch sink**: Allow empty data_stream fields (vectordotdev#18193) [1dd7bb1](answerbook/vector@1dd7bb1) - GitHub
* **file source**: fix some typos (vectordotdev#18401) [1164f55](answerbook/vector@1164f55) - Jesse Szwedko
* Fix "Bring your own toolbox" in `DEVELOPING.md` (vectordotdev#18014) [115bd7b](answerbook/vector@115bd7b) - GitHub
* Fix schema.log_namespace and telemetry.tags documentation (vectordotdev#17961) [50736e2](answerbook/vector@50736e2) - GitHub
* **internal docs**: Fix basic sink tutorial issues (vectordotdev#18136) [5a6ce73](answerbook/vector@5a6ce73) - GitHub
* **lua transform**: Emit events with the `source_id` set (vectordotdev#17870) [bc1b83a](answerbook/vector@bc1b83a) - GitHub
* **observability**: add fixed tag option to `RegisteredEventCache` (vectordotdev#17814) [bc86222](answerbook/vector@bc86222) - GitHub
* **prometheus_scrape source**: run requests in parallel with timeouts (vectordotdev#18021) [a9df958](answerbook/vector@a9df958) - GitHub
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants