From 2818d1e6d13bf31c52a79a72f5342c40646bbde0 Mon Sep 17 00:00:00 2001 From: Paulin Todev Date: Wed, 5 Feb 2025 18:12:18 +0000 Subject: [PATCH] Update to Prometheus v0.54.1 --- CHANGELOG.md | 14 ++ .../components/discovery/discovery.docker.md | 1 + .../components/discovery/discovery.ec2.md | 1 + .../discovery/discovery.kubernetes.md | 3 + .../components/discovery/discovery.linode.md | 6 + .../discovery/discovery.openstack.md | 4 +- .../discovery/discovery.ovhcloud.md | 1 + .../components/loki/loki.source.syslog.md | 4 +- .../prometheus/prometheus.remote_write.md | 14 +- .../prometheus/prometheus.scrape.md | 6 + ...ock.md => azure-managed_identity-block.md} | 0 .../reference/components/azure-oauth-block.md | 11 ++ .../reference/components/azuread-sdk.md | 13 ++ go.mod | 62 ++++---- go.sum | 150 +++++++++--------- .../tests/scrape-prom-metrics/config.alloy | 2 +- internal/component/discovery/docker/docker.go | 3 + internal/component/discovery/linode/linode.go | 3 + .../component/discovery/linode/linode_test.go | 2 + internal/component/faro/receiver/server.go | 8 +- .../api/internal/lokipush/push_api_server.go | 2 +- .../prometheus/receive_http/receive_http.go | 6 +- .../receive_http/receive_http_test.go | 41 ++--- .../prometheus/remotewrite/remote_write.go | 2 +- .../component/prometheus/remotewrite/types.go | 127 ++++++++++++++- .../prometheus/remotewrite/types_test.go | 19 ++- .../component/prometheus/scrape/scrape.go | 4 + .../prometheusconvert/component/docker.go | 1 + .../prometheusconvert/component/linode.go | 1 + .../component/remote_write.go | 25 ++- .../prometheusconvert/component/scrape.go | 1 + .../internal/build/docker_sd.go | 1 + .../testdata-v2/integrations_v2.alloy | 2 +- .../testdata-v2/unsupported.alloy | 2 +- .../testdata/prom_remote_write.alloy | 16 +- .../staticconvert/testdata/prom_scrape.alloy | 2 +- .../staticconvert/testdata/sanitize.alloy | 2 +- .../staticconvert/testdata/traces.alloy | 2 +- .../staticconvert/testdata/unsupported.alloy | 4 +- .../testdata_linux/promtail_prom.alloy | 2 +- .../testdata_windows/promtail_prom.alloy | 2 +- .../static/metrics/instance/marshal_test.go | 2 + internal/static/metrics/wal/util.go | 2 + 43 files changed, 409 insertions(+), 167 deletions(-) rename docs/sources/shared/reference/components/{managed_identity-block.md => azure-managed_identity-block.md} (100%) create mode 100644 docs/sources/shared/reference/components/azure-oauth-block.md create mode 100644 docs/sources/shared/reference/components/azuread-sdk.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 402c35ab1d..7ee4138169 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,6 +50,20 @@ Main (unreleased) - Add support for pushv1.PusherService Connect API in `pyroscope.receive_http`. (@simonswine) +### Other changes + +- Upgrading to Prometheus v2.54.1. (@ptodev) + - `discovery.docker` has a new `match_first_network` attribute for matching the first network + if the container has multiple networks defined, thus avoiding collecting duplicate targets. + - `discovery.ec2`, `discovery.kubernetes`, `discovery.openstack`, and `discovery.ovhcloud` + add extra `__meta_` labels. + - `prometheus.remote_write` supports Azure OAuth and Azure SDK authentication. + - `discovery.linode` has a new `region` attribute, as well as extra `__meta_` labels. + - A new `scrape_native_histograms` argument for `prometheus.scrape`. + This is enabled by default and can be used to explicitly disable native histogram support. + In previous versions of Alloy, native histogram support has also been enabled by default + as long as `scrape_protocols` starts with `PrometheusProto`. + v1.6.1 ----------------- diff --git a/docs/sources/reference/components/discovery/discovery.docker.md b/docs/sources/reference/components/discovery/discovery.docker.md index fce4bda49a..586609b6e2 100644 --- a/docs/sources/reference/components/discovery/discovery.docker.md +++ b/docs/sources/reference/components/discovery/discovery.docker.md @@ -34,6 +34,7 @@ Name | Type | Description `enable_http2` | `bool` | Whether HTTP2 is supported for requests. | `true` | no `follow_redirects` | `bool` | Whether redirects returned by the server should be followed. | `true` | no `host_networking_host` | `string` | Host to use if the container is in host networking mode. | `"localhost"` | no +`match_first_network` | `bool` | Match the first network if the container has multiple networks defined, thus avoiding collecting duplicate targets. | `true` | no `no_proxy` | `string` | Comma-separated list of IP addresses, CIDR notations, and domain names to exclude from proxying. | | no `port` | `number` | Port to use for collecting metrics when containers don't have any port mappings. | `80` | no `proxy_connect_header` | `map(list(secret))` | Specifies headers to send to proxies during CONNECT requests. | | no diff --git a/docs/sources/reference/components/discovery/discovery.ec2.md b/docs/sources/reference/components/discovery/discovery.ec2.md index 692391803c..c34cb972f2 100644 --- a/docs/sources/reference/components/discovery/discovery.ec2.md +++ b/docs/sources/reference/components/discovery/discovery.ec2.md @@ -137,6 +137,7 @@ Each target includes the following labels: * `__meta_ec2_ipv6_addresses`: Comma-separated list of IPv6 addresses assigned to the instance's network interfaces, if present. * `__meta_ec2_owner_id`: The ID of the AWS account that owns the EC2 instance. * `__meta_ec2_platform`: The Operating System platform, set to 'windows' on Windows servers, absent otherwise. +* `__meta_ec2_primary_ipv6_addresses`: Comma separated list of the Primary IPv6 addresses of the instance, if present. The list is ordered based on the position of each corresponding network interface in the attachment order. * `__meta_ec2_primary_subnet_id`: The subnet ID of the primary network interface, if available. * `__meta_ec2_private_dns_name`: The private DNS name of the instance, if available. * `__meta_ec2_private_ip`: The private IP address of the instance, if present. diff --git a/docs/sources/reference/components/discovery/discovery.kubernetes.md b/docs/sources/reference/components/discovery/discovery.kubernetes.md index 7d5b51092e..bd5fbbc1b5 100644 --- a/docs/sources/reference/components/discovery/discovery.kubernetes.md +++ b/docs/sources/reference/components/discovery/discovery.kubernetes.md @@ -173,6 +173,9 @@ The following labels are included for discovered endpoint slices: * `__meta_kubernetes_endpointslice_endpoint_conditions_ready`: Set to `true` or `false` for the referenced endpoint's ready state. * `__meta_kubernetes_endpointslice_endpoint_topology_kubernetes_io_hostname`: Name of the node hosting the referenced endpoint. * `__meta_kubernetes_endpointslice_endpoint_topology_present_kubernetes_io_hostname`: `true` if the referenced object has a `kubernetes.io/hostname` annotation. + * `__meta_kubernetes_endpointslice_endpoint_hostname`: Hostname of the referenced endpoint. + * `__meta_kubernetes_endpointslice_endpoint_node_name`: Name of the Node hosting the referenced endpoint. + * `__meta_kubernetes_endpointslice_endpoint_zone`: Zone the referenced endpoint exists in (only available when using the `discovery.k8s.io/v1` API group). * `__meta_kubernetes_endpointslice_port_name`: Named port of the referenced endpoint. * `__meta_kubernetes_endpointslice_port_protocol`: Protocol of the referenced endpoint. * `__meta_kubernetes_endpointslice_port`: Port of the referenced endpoint. diff --git a/docs/sources/reference/components/discovery/discovery.linode.md b/docs/sources/reference/components/discovery/discovery.linode.md index 0673f33157..863f621b38 100644 --- a/docs/sources/reference/components/discovery/discovery.linode.md +++ b/docs/sources/reference/components/discovery/discovery.linode.md @@ -43,6 +43,7 @@ Name | Type | Description `proxy_from_environment` | `bool` | Use the proxy URL indicated by environment variables. | `false` | no `proxy_url` | `string` | HTTP proxy to send requests through. | | no `refresh_interval` | `duration` | The time to wait between polling update requests. | `"60s"` | no +`region` | `string` | A region to filter on. | `""` | no `tag_separator` | `string` | The string by which Linode Instance tags are joined into the tag label. | `,` | no At most, one of the following can be provided: @@ -114,13 +115,17 @@ The following meta labels are available on targets and can be used by the discov * `__meta_linode_backups`: The backup service status of the Linode instance. * `__meta_linode_extra_ips`: A list of all extra IPv4 addresses assigned to the Linode instance joined by the tag separator. * `__meta_linode_group`: The display group a Linode instance is a member of. +* `__meta_linode_gpus`: The number of GPUs of the linode instance. * `__meta_linode_hypervisor`: The virtualization software powering the Linode instance. * `__meta_linode_image`: The slug of the Linode instance's image. * `__meta_linode_instance_id`: The ID of the Linode instance. * `__meta_linode_instance_label`: The label of the Linode instance. * `__meta_linode_private_ipv4`: The private IPv4 of the Linode instance. +* `__meta_linode_private_ipv4_rdns`: the reverse DNS for the first private IPv4 of the linode instance * `__meta_linode_public_ipv4`: The public IPv4 of the Linode instance. +* `__meta_linode_public_ipv4_rdns`: the reverse DNS for the first public IPv4 of the linode instance * `__meta_linode_public_ipv6`: The public IPv6 of the Linode instance. +* `__meta_linode_public_ipv6_rdns`: the reverse DNS for the first public IPv6 of the linode instance * `__meta_linode_region`: The region of the Linode instance. * `__meta_linode_specs_disk_bytes`: The amount of storage space the Linode instance has access to. * `__meta_linode_specs_memory_bytes`: The amount of RAM the Linode instance has access to. @@ -129,6 +134,7 @@ The following meta labels are available on targets and can be used by the discov * `__meta_linode_status`: The status of the Linode instance. * `__meta_linode_tags`: A list of tags of the Linode instance joined by the tag separator. * `__meta_linode_type`: The type of the Linode instance. +* `__meta_linode_ipv6_ranges`: A list of IPv6 ranges with mask assigned to the linode instance joined by the tag separator. ## Component health diff --git a/docs/sources/reference/components/discovery/discovery.openstack.md b/docs/sources/reference/components/discovery/discovery.openstack.md index 9fb45a6ad5..77d1c2d6bf 100644 --- a/docs/sources/reference/components/discovery/discovery.openstack.md +++ b/docs/sources/reference/components/discovery/discovery.openstack.md @@ -103,7 +103,7 @@ The `instance` role discovers one target per network interface of Nova instance. The target address defaults to the private IP address of the network interface. * `__meta_openstack_address_pool`: The pool of the private IP. -* `__meta_openstack_instance_flavor`: The flavor of the OpenStack instance. +* `__meta_openstack_instance_flavor`: The flavor of the OpenStack instance, or the flavor ID if the flavor name isn't available. * `__meta_openstack_instance_id`: The OpenStack instance ID. * `__meta_openstack_instance_image`: The ID of the image the OpenStack instance is using. * `__meta_openstack_instance_name`: The OpenStack instance name. @@ -111,7 +111,7 @@ The target address defaults to the private IP address of the network interface. * `__meta_openstack_private_ip`: The private IP of the OpenStack instance. * `__meta_openstack_project_id`: The project (tenant) owning this instance. * `__meta_openstack_public_ip`: The public IP of the OpenStack instance. -* `__meta_openstack_tag_`: Each tag value of the instance. +* `__meta_openstack_tag_`: Each metadata item of the instance, with any unsupported characters converted to an underscore. * `__meta_openstack_user_id`: The user account owning the tenant. ## Component health diff --git a/docs/sources/reference/components/discovery/discovery.ovhcloud.md b/docs/sources/reference/components/discovery/discovery.ovhcloud.md index 6ad2d6b2dd..eedc49588c 100644 --- a/docs/sources/reference/components/discovery/discovery.ovhcloud.md +++ b/docs/sources/reference/components/discovery/discovery.ovhcloud.md @@ -95,6 +95,7 @@ Multiple meta labels are available on `targets` and can be used by the `discover * `__meta_ovhcloud_dedicated_server_ipv6`: The IPv6 of the server. * `__meta_ovhcloud_dedicated_server_link_speed`: The link speed of the server. * `__meta_ovhcloud_dedicated_server_name`: The name of the server. +* `__meta_ovhcloud_dedicated_server_no_intervention`: Whether datacenter intervention is disabled for the server. * `__meta_ovhcloud_dedicated_server_os`: The operating system of the server. * `__meta_ovhcloud_dedicated_server_rack`: The rack of the server. * `__meta_ovhcloud_dedicated_server_reverse`: The reverse DNS name of the server. diff --git a/docs/sources/reference/components/loki/loki.source.syslog.md b/docs/sources/reference/components/loki/loki.source.syslog.md index eba0ebf135..62ecb9e38a 100644 --- a/docs/sources/reference/components/loki/loki.source.syslog.md +++ b/docs/sources/reference/components/loki/loki.source.syslog.md @@ -17,6 +17,8 @@ The component starts a new syslog listener for each of the given `config` blocks and fans out incoming entries to the list of receivers in `forward_to`. Multiple `loki.source.syslog` components can be specified by giving them different labels. +[RFC5424]: https://www.rfc-editor.org/rfc/rfc5424 +[RFC3164]: https://www.rfc-editor.org/rfc/rfc3164 ## Usage @@ -76,7 +78,7 @@ Name | Type | Description -------------------------|---------------|-------------------------------------------------------------------------------|-----------|--------- `address` | `string` | The `` address to listen to for syslog messages. | | yes `protocol` | `string` | The protocol to listen to for syslog messages. Must be either `tcp` or `udp`. | `tcp` | no -`idle_timeout` | `duration` | The idle timeout for tcp connections. | `"120s" ` | no +`idle_timeout` | `duration` | The idle timeout for tcp connections. | `"120s"` | no `label_structured_data` | `bool` | Whether to translate syslog structured data to loki labels. | `false` | no `labels` | `map(string)` | The labels to associate with each received syslog record. | `{}` | no `use_incoming_timestamp` | `bool` | Whether to set the timestamp to the incoming syslog record timestamp. | `false` | no diff --git a/docs/sources/reference/components/prometheus/prometheus.remote_write.md b/docs/sources/reference/components/prometheus/prometheus.remote_write.md index a919d750f0..6764a858e0 100644 --- a/docs/sources/reference/components/prometheus/prometheus.remote_write.md +++ b/docs/sources/reference/components/prometheus/prometheus.remote_write.md @@ -55,6 +55,8 @@ endpoint > oauth2 > tls_config | [tls_config][] | Configure TLS settings for con endpoint > sigv4 | [sigv4][] | Configure AWS Signature Verification 4 for authenticating to the endpoint. | no endpoint > azuread | [azuread][] | Configure AzureAD for authenticating to the endpoint. | no endpoint > azuread > managed_identity | [managed_identity][] | Configure Azure user-assigned managed identity. | yes +endpoint > azuread > oauth | [oauth][] | Configure Azure OAuth. | yes +endpoint > azuread > sdk | [sdk][] | Configure Azure SDK authentication. | yes endpoint > tls_config | [tls_config][] | Configure TLS settings for connecting to the endpoint. | no endpoint > queue_config | [queue_config][] | Configuration for how metrics are batched before sending. | no endpoint > metadata_config | [metadata_config][] | Configuration for how metric metadata is sent. | no @@ -72,6 +74,8 @@ basic_auth` refers to a `basic_auth` block defined inside an [sigv4]: #sigv4-block [azuread]: #azuread-block [managed_identity]: #managed_identity-block +[oauth]: #oauth-block +[sdk]: #sdk-block [tls_config]: #tls_config-block [queue_config]: #queue_config-block [metadata_config]: #metadata_config-block @@ -149,7 +153,15 @@ metrics fails. ### managed_identity block -{{< docs/shared lookup="reference/components/managed_identity-block.md" source="alloy" version="" >}} +{{< docs/shared lookup="reference/components/azure-managed_identity-block.md" source="alloy" version="" >}} + +### oauth block + +{{< docs/shared lookup="reference/components/azure-oauth-block.md" source="alloy" version="" >}} + +### sdk block + +{{< docs/shared lookup="reference/components/azure-sdk-block.md" source="alloy" version="" >}} ### tls_config block diff --git a/docs/sources/reference/components/prometheus/prometheus.scrape.md b/docs/sources/reference/components/prometheus/prometheus.scrape.md index 622cf1a37a..c6ab75d013 100644 --- a/docs/sources/reference/components/prometheus/prometheus.scrape.md +++ b/docs/sources/reference/components/prometheus/prometheus.scrape.md @@ -51,6 +51,7 @@ The following arguments are supported: | `track_timestamps_staleness` | `bool` | Indicator whether to track the staleness of the scraped timestamps. | `false` | no | | `params` | `map(list(string))` | A set of query parameters with which the target is scraped. | | no | | `scrape_classic_histograms` | `bool` | Whether to scrape a classic histogram that is also exposed as a native histogram. | `false` | no | +| `scrape_native_histograms` | `bool` | Whether to scrape native histograms. | `true` | no | | `scrape_interval` | `duration` | How frequently to scrape the targets of this scrape configuration. | `"60s"` | no | | `scrape_timeout` | `duration` | The timeout for scraping targets of this configuration. | `"10s"` | no | | `scrape_protocols` | `list(string)` | The protocols to negotiate during a scrape, in order of preference. See below for available values. | `["OpenMetricsText1.0.0", "OpenMetricsText0.0.1", "PrometheusText0.0.4"]` | no | @@ -89,6 +90,10 @@ a scrape. The following values are supported: If you were using the now deprecated `enable_protobuf_negotiation` argument, switch to using `scrape_protocols = ["PrometheusProto", "OpenMetricsText1.0.0", "OpenMetricsText0.0.1", "PrometheusText0.0.4"]` instead. +For now, native histograms are only available through the Prometheus Protobuf exposition format. +To scrape native histograms, `scrape_native_histograms` must be set to `true` and +the first item in `scrape_protocols` must be `PrometheusProto`. + {{< docs/shared lookup="reference/components/http-client-proxy-config-description.md" source="alloy" version="" >}} `track_timestamps_staleness` controls whether Prometheus tracks [staleness][prom-staleness] of metrics with an explicit timestamp present in scraped data. @@ -269,6 +274,7 @@ negotiate, for example: ```alloy prometheus.scrape "prometheus" { ... + scrape_native_histograms = true scrape_protocols = ["PrometheusProto", "OpenMetricsText1.0.0", "OpenMetricsText0.0.1", "PrometheusText0.0.4"] } ``` diff --git a/docs/sources/shared/reference/components/managed_identity-block.md b/docs/sources/shared/reference/components/azure-managed_identity-block.md similarity index 100% rename from docs/sources/shared/reference/components/managed_identity-block.md rename to docs/sources/shared/reference/components/azure-managed_identity-block.md diff --git a/docs/sources/shared/reference/components/azure-oauth-block.md b/docs/sources/shared/reference/components/azure-oauth-block.md new file mode 100644 index 0000000000..dfb7313c25 --- /dev/null +++ b/docs/sources/shared/reference/components/azure-oauth-block.md @@ -0,0 +1,11 @@ +--- +canonical: https://grafana.com/docs/alloy/latest/shared/reference/components/azuread-oauth-block/ +description: Shared content, oauth block +headless: true +--- + +Name | Type | Description | Default | Required +----------------|----------|-------------------------------------------------------------------------------------------------|---------|--------- +`client_id` | `string` | The client ID of the Azure Active Directory application that is being used to authenticate. | | yes +`client_secret` | `secret` | The client secret of the Azure Active Directory application that is being used to authenticate. | | yes +`tenant_id` | `string` | The tenant ID of the Azure Active Directory application that is being used to authenticate. | | yes diff --git a/docs/sources/shared/reference/components/azuread-sdk.md b/docs/sources/shared/reference/components/azuread-sdk.md new file mode 100644 index 0000000000..6cf5fa0b9a --- /dev/null +++ b/docs/sources/shared/reference/components/azuread-sdk.md @@ -0,0 +1,13 @@ +--- +canonical: https://grafana.com/docs/alloy/latest/shared/reference/components/azuread-sdk-block/ +description: Shared content, sdk block +headless: true +--- + +This block configures [Azure SDK authentication][sdk-auth]. + +Name | Type | Description | Default | Required +------------|----------|---------------------------------------------------------------------------------------------|---------|--------- +`tenant_id` | `string` | The tenant ID of the Azure Active Directory application that is being used to authenticate. | | yes + +[sdk-auth]: https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication \ No newline at end of file diff --git a/go.mod b/go.mod index d072c0656d..f230b01193 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/grafana/alloy go 1.23.5 require ( - cloud.google.com/go/pubsub v1.40.0 + cloud.google.com/go/pubsub v1.42.0 connectrpc.com/connect v1.16.2 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 @@ -60,13 +60,13 @@ require ( github.com/grafana/catchpoint-prometheus-exporter v0.0.0-20240606062944-e55f3668661d github.com/grafana/ckit v0.0.0-20241128150632-1e6dfe1c6183 github.com/grafana/cloudflare-go v0.0.0-20230110200409-c627cf6792f2 - github.com/grafana/dskit v0.0.0-20240104111617-ea101a3b86eb + github.com/grafana/dskit v0.0.0-20250131191929-eab36484cec2 github.com/grafana/go-gelf/v2 v2.0.1 github.com/grafana/jfr-parser/pprof v0.0.3 - github.com/grafana/jsonparser v0.0.0-20240209175146-098958973a2d + github.com/grafana/jsonparser v0.0.0-20240425183733-ea80629e1a32 github.com/grafana/kafka_exporter v0.0.0-20240409084445-5e3488ad9f9a - github.com/grafana/loki/pkg/push v0.0.0-20240617182007-6c33561108ad // k206 branch - github.com/grafana/loki/v3 v3.0.0-20240617182007-6c33561108ad // k206 branch + github.com/grafana/loki/pkg/push v0.0.0-20240828191521-eacfef824138 // k217 branch + github.com/grafana/loki/v3 v3.0.0-20240828191521-eacfef824138 // k217 branch github.com/grafana/pyroscope-go/godeltaprof v0.1.8 github.com/grafana/pyroscope/api v1.2.0 github.com/grafana/pyroscope/ebpf v0.4.8 @@ -146,8 +146,8 @@ require ( github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.116.0 github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.116.0 github.com/ory/dockertest/v3 v3.8.1 - github.com/oschwald/geoip2-golang v1.9.0 - github.com/oschwald/maxminddb-golang v1.11.0 + github.com/oschwald/geoip2-golang v1.11.0 + github.com/oschwald/maxminddb-golang v1.13.0 github.com/percona/mongodb_exporter v0.39.1-0.20230706092307-28432707eb65 github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 github.com/pkg/errors v0.9.1 @@ -169,7 +169,7 @@ require ( github.com/prometheus/mysqld_exporter v0.16.0 github.com/prometheus/node_exporter v1.6.0 github.com/prometheus/procfs v0.15.1 - github.com/prometheus/prometheus v0.55.1 // a.k.a. v2.51.2 + github.com/prometheus/prometheus v0.55.1 // a.k.a. v2.54.1 github.com/prometheus/snmp_exporter v0.27.0 // if you update the snmp_exporter version, make sure to update the SNMP_VERSION in _index github.com/prometheus/statsd_exporter v0.22.8 github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 @@ -258,7 +258,7 @@ require ( golang.org/x/text v0.21.0 golang.org/x/time v0.6.0 golang.org/x/tools v0.28.0 - google.golang.org/api v0.188.0 + google.golang.org/api v0.193.0 google.golang.org/grpc v1.68.1 google.golang.org/protobuf v1.35.2 gopkg.in/yaml.v2 v2.4.0 @@ -275,11 +275,11 @@ require ( ) require ( - cloud.google.com/go v0.115.0 // indirect - cloud.google.com/go/auth v0.7.0 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect + cloud.google.com/go v0.115.1 // indirect + cloud.google.com/go/auth v0.9.0 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect cloud.google.com/go/compute/metadata v0.5.2 // indirect - cloud.google.com/go/iam v1.1.10 // indirect + cloud.google.com/go/iam v1.2.0 // indirect dario.cat/mergo v1.0.1 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect @@ -293,11 +293,11 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.8.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.1.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions v1.2.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect - github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect - github.com/Azure/go-autorest/autorest/azure/auth v0.5.12 // indirect + github.com/Azure/go-autorest/autorest/adal v0.9.24 // indirect + github.com/Azure/go-autorest/autorest/azure/auth v0.5.13 // indirect github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 // indirect github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect @@ -388,7 +388,7 @@ require ( github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect github.com/ProtonMail/go-crypto v1.1.3 // indirect github.com/Showmax/go-fqdn v1.0.0 // indirect - github.com/Workiva/go-datastructures v1.1.0 // indirect + github.com/Workiva/go-datastructures v1.1.5 // indirect github.com/alecthomas/participle/v2 v2.1.1 // indirect github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect github.com/andybalholm/brotli v1.0.5 // indirect @@ -425,14 +425,14 @@ require ( github.com/aws/aws-sdk-go-v2/service/storagegateway v1.30.1 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 // indirect github.com/aws/smithy-go v1.22.1 // indirect - github.com/axiomhq/hyperloglog v0.0.0-20240124082744-24bca3a5b39b // indirect + github.com/axiomhq/hyperloglog v0.0.0-20240507144631-af9851f82b27 // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect github.com/beevik/ntp v1.3.0 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bmatcuk/doublestar/v4 v4.7.1 // indirect github.com/briandowns/spinner v1.23.0 // indirect - github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b // indirect + github.com/c2h5oh/datasize v0.0.0-20231215233829-aa82cc1e6500 // indirect github.com/caarlos0/env/v9 v9.0.0 // indirect github.com/cenkalti/backoff v2.2.1+incompatible // indirect github.com/cenkalti/backoff/v3 v3.0.0 // indirect @@ -490,10 +490,10 @@ require ( github.com/expr-lang/expr v1.16.9 // indirect github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb // indirect github.com/fatih/camelcase v1.0.0 // indirect - github.com/felixge/fgprof v0.9.3 // indirect + github.com/felixge/fgprof v0.9.4 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/form3tech-oss/jwt-go v3.2.5+incompatible // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gammazero/deque v0.2.1 // indirect github.com/gavv/monotime v0.0.0-20190418164738-30dba4353424 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect @@ -535,15 +535,15 @@ require ( github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/s2a-go v0.1.7 // indirect + github.com/google/s2a-go v0.1.8 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.5 // indirect + github.com/googleapis/gax-go/v2 v2.13.0 // indirect github.com/gophercloud/gophercloud v1.13.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/gosnmp/gosnmp v1.38.0 // indirect github.com/grafana/go-offsets-tracker v0.1.7 // indirect - github.com/grafana/gomemcache v0.0.0-20231204155601-7de47a8c3cb0 // indirect + github.com/grafana/gomemcache v0.0.0-20240229205252-cd6a66d6fb56 // indirect github.com/grafana/jfr-parser v0.9.2 // indirect github.com/grafana/snowflake-prometheus-exporter v0.0.0-20240813124544-9995e8354548 github.com/grobie/gomemcache v0.0.0-20230213081705-239240bbc445 // indirect @@ -556,7 +556,7 @@ require ( github.com/hashicorp/go-envparse v0.1.0 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect - github.com/hashicorp/go-msgpack v0.5.5 // indirect + github.com/hashicorp/go-msgpack v1.1.5 // indirect github.com/hashicorp/go-msgpack/v2 v2.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect @@ -611,7 +611,7 @@ require ( github.com/karrick/godirwalk v1.17.0 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/klauspost/asmfmt v1.3.2 // indirect - github.com/klauspost/cpuid/v2 v2.2.5 // indirect + github.com/klauspost/cpuid/v2 v2.2.8 // indirect github.com/knadh/koanf v1.5.0 // indirect github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect @@ -807,7 +807,7 @@ require ( golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect - google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b // indirect + google.golang.org/genproto v0.0.0-20240820151423-278611b39280 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect @@ -848,7 +848,6 @@ require ( github.com/oapi-codegen/runtime v1.0.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/topic v0.116.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.116.0 - github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect github.com/valyala/fastjson v1.6.4 // indirect go.opentelemetry.io/collector/connector/xconnector v0.116.0 // indirect go.opentelemetry.io/collector/consumer/consumererror v0.116.0 // indirect @@ -883,9 +882,8 @@ require ( github.com/containers/common v0.61.0 // indirect github.com/deneonet/benc v1.1.2 // indirect github.com/itchyny/timefmt-go v0.1.6 // indirect - github.com/onsi/ginkgo/v2 v2.21.0 // indirect - github.com/onsi/gomega v1.35.1 // indirect - go.etcd.io/bbolt v1.3.11 // indirect + github.com/pires/go-proxyproto v0.7.0 // indirect + github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect ) // NOTE: replace directives below must always be *temporary*. @@ -914,7 +912,7 @@ replace ( // TODO: remove replace directive once: // * There is a release of Prometheus which addresses https://github.com/prometheus/prometheus/issues/14049, // for example, via this implementation: https://github.com/grafana/prometheus/pull/34 -replace github.com/prometheus/prometheus => github.com/grafana/prometheus v1.8.2-0.20240514135907-13889ba362e6 // staleness_disabling_v0.51 branch +replace github.com/prometheus/prometheus => github.com/grafana/prometheus v1.8.2-0.20240827140850-d665aef8a4ac // staleness_disabling_v0.54.1 branch replace gopkg.in/yaml.v2 => github.com/rfratto/go-yaml v0.0.0-20211119180816-77389c3526dc diff --git a/go.sum b/go.sum index 129499e92f..d5e44770df 100644 --- a/go.sum +++ b/go.sum @@ -38,8 +38,8 @@ cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFO cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= -cloud.google.com/go v0.115.0 h1:CnFSK6Xo3lDYRoBKEcAtia6VSC837/ZkJuRduSFnr14= -cloud.google.com/go v0.115.0/go.mod h1:8jIM5vVgoAEoiVxQ/O4BFTfHqulPZgs/ufEzMcFMdWU= +cloud.google.com/go v0.115.1 h1:Jo0SM9cQnSkYfp44+v+NQXHpcHqlnRJk2qxh6yvxxxQ= +cloud.google.com/go v0.115.1/go.mod h1:DuujITeaufu3gL68/lOFIirVNJwQeyf5UXyi+Wbgknc= cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= @@ -101,10 +101,10 @@ cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVo cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= -cloud.google.com/go/auth v0.7.0 h1:kf/x9B3WTbBUHkC+1VS8wwwli9TzhSt0vSTVBmMR8Ts= -cloud.google.com/go/auth v0.7.0/go.mod h1:D+WqdrpcjmiCgWrXmLLxOVq1GACoE36chW6KXoEvuIw= -cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= -cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= +cloud.google.com/go/auth v0.9.0 h1:cYhKl1JUhynmxjXfrk4qdPc6Amw7i+GC9VLflgT0p5M= +cloud.google.com/go/auth v0.9.0/go.mod h1:2HsApZBr9zGZhC9QAXsYVYaWk8kNUt37uny+XVKi7wM= +cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= +cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= @@ -320,8 +320,8 @@ cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGE cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/iam v1.1.10 h1:ZSAr64oEhQSClwBL670MsJAW5/RLiC6kfw3Bqmd5ZDI= -cloud.google.com/go/iam v1.1.10/go.mod h1:iEgMq62sg8zx446GCaijmA2Miwg5o3UbO+nI47WHJps= +cloud.google.com/go/iam v1.2.0 h1:kZKMKVNk/IsSSc/udOb83K0hL/Yh/Gcqpz+oAkoIFN8= +cloud.google.com/go/iam v1.2.0/go.mod h1:zITGuWgsLZxd8OwAlX+eMFgZDXzBm7icj1PVTYG766Q= cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= @@ -341,8 +341,8 @@ cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4 cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= -cloud.google.com/go/kms v1.18.2 h1:EGgD0B9k9tOOkbPhYW1PHo2W0teamAUYMOUIcDRMfPk= -cloud.google.com/go/kms v1.18.2/go.mod h1:YFz1LYrnGsXARuRePL729oINmN5J/5e7nYijgvfiIeY= +cloud.google.com/go/kms v1.18.5 h1:75LSlVs60hyHK3ubs2OHd4sE63OAMcM2BdSJc2bkuM4= +cloud.google.com/go/kms v1.18.5/go.mod h1:yXunGUGzabH8rjUPImp2ndHiGolHeWJJ0LODLedicIY= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= @@ -356,8 +356,8 @@ cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeN cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= -cloud.google.com/go/longrunning v0.5.9 h1:haH9pAuXdPAMqHvzX0zlWQigXT7B0+CL4/2nXXdBo5k= -cloud.google.com/go/longrunning v0.5.9/go.mod h1:HD+0l9/OOW0za6UWdKJtXoFAX/BGg/3Wj8p10NeWF7c= +cloud.google.com/go/longrunning v0.6.0 h1:mM1ZmaNsQsnb+5n1DNPeL0KwQd9jQRqSqSDEkBZr+aI= +cloud.google.com/go/longrunning v0.6.0/go.mod h1:uHzSZqW89h7/pasCWNYdUpwGz3PcVWhrWupreVPYLts= cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= @@ -438,8 +438,8 @@ cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcd cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= -cloud.google.com/go/pubsub v1.40.0 h1:0LdP+zj5XaPAGtWr2V6r88VXJlmtaB/+fde1q3TU8M0= -cloud.google.com/go/pubsub v1.40.0/go.mod h1:BVJI4sI2FyXp36KFKvFwcfDRDfR8MiLT8mMhmIhdAeA= +cloud.google.com/go/pubsub v1.42.0 h1:PVTbzorLryFL5ue8esTS2BfehUs0ahyNOY9qcd+HMOs= +cloud.google.com/go/pubsub v1.42.0/go.mod h1:KADJ6s4MbTwhXmse/50SebEhE4SmUwHi48z3/dHar1Y= cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= @@ -663,14 +663,14 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1. github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.1.1/go.mod h1:c/wcGeGx5FUPbM/JltUYHZcKmigwyVLJlDq+4HdtXaw= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions v1.2.0 h1:Pmy0+3ox1IC3sp6musv87BFPIdQbqyPFjn7I8I0o2Js= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions v1.2.0/go.mod h1:ThfyMjs6auYrWPnYJjI3H4H++oVPrz01pizpu8lfl3A= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.2.0 h1:Ma67P/GGprNwsslzEH6+Kb8nybI8jpDTm4Wmzu2ReK8= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.2.0/go.mod h1:c+Lifp3EDEamAkPVzMooRNOK6CZjNSdEnf1A7jsI9u4= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.5.0 h1:AifHbc4mg0x9zW52WOpKbsHaDKuRhlI7TVl47thgQ70= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.5.0/go.mod h1:T5RfihdXtBDxt1Ch2wobif3TvzTdumDy29kahv6AV9A= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0 h1:yfJe15aSwEQ6Oo6J+gdfdulPNoZ3TEhmbhLIoxZcA+U= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0/go.mod h1:Q28U+75mpCaSCDowNEmhIo/rmgdkqmkmzI7N6TGR4UY= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0 h1:T028gtTPiYt/RMUfs8nVsAL7FDQrfLlrm/NnRG/zcC4= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0/go.mod h1:cw4zVQgBby0Z5f2v0itn6se2dDP17nTjbZFXW5uPyHA= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0 h1:gggzg0SUMs6SQbEw+3LoSsYf9YMjkupeAnHMX8O9mmY= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0/go.mod h1:+6KLcKIVgxoBDMqMO/Nvy7bZ9a0nbU3I1DtFQK3YvB4= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.0 h1:IfFdxTUDiV58iZqPKgyWiz4X4fCxZeQ1pTQPImLYXpY= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.0/go.mod h1:SUZc9YRRHfx2+FAQKNDGrssXehqLpxmwRv2mC/5ntj4= github.com/Azure/azure-storage-queue-go v0.0.0-20181215014128-6ed74e755687/go.mod h1:K6am8mT+5iFXgingS9LUc7TmbsW6XBw3nxaRyaMyWc8= github.com/Azure/go-amqp v0.12.6/go.mod h1:qApuH6OFTSKZFmCOxccvAv5rLizBQf4v8pRmG138DPo= github.com/Azure/go-amqp v1.3.0 h1://1rikYhoIQNXJFXyoO/Rlb4+4EkHYfJceNtLlys2/4= @@ -685,7 +685,7 @@ github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSW github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.3/go.mod h1:GsRuLYvwzLjjjRoWEIyMUaYq8GNUx2nRB378IPt/1p0= github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= -github.com/Azure/go-autorest/autorest v0.11.24/go.mod h1:G6kyRlFnTuSbEYkQGawPfsCswgme4iYf6rfSKUDzbCc= +github.com/Azure/go-autorest/autorest v0.11.28/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA= github.com/Azure/go-autorest/autorest v0.11.29 h1:I4+HL/JDvErx2LjyzaVxllw2lRDB5/BT2Bm4g20iqYw= github.com/Azure/go-autorest/autorest v0.11.29/go.mod h1:ZtEzC4Jy2JDrZLxvWs8LrBWEBycl1hbT1eknI8MtfAs= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= @@ -695,13 +695,12 @@ github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyC github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= github.com/Azure/go-autorest/autorest/adal v0.9.22/go.mod h1:XuAbAEUv2Tta//+voMI038TrJBqjKam0me7qR+L8Cmk= -github.com/Azure/go-autorest/autorest/adal v0.9.23 h1:Yepx8CvFxwNKpH6ja7RZ+sKX+DWYNldbLiALMC3BTz8= -github.com/Azure/go-autorest/autorest/adal v0.9.23/go.mod h1:5pcMqFkdPhviJdlEy3kC/v1ZLnQl0MH6XA5YCcMhy4c= +github.com/Azure/go-autorest/autorest/adal v0.9.24 h1:BHZfgGsGwdkHDyZdtQRQk1WeUdW0m2WPAwuHZwUi5i4= +github.com/Azure/go-autorest/autorest/adal v0.9.24/go.mod h1:7T1+g0PYFmACYW5LlG2fcoPiPlFHjClyRGL7dRlP5c8= github.com/Azure/go-autorest/autorest/azure/auth v0.4.2/go.mod h1:90gmfKdlmKgfjUpnCEpOJzsUEjrWDSLwHIG73tSXddM= -github.com/Azure/go-autorest/autorest/azure/auth v0.5.12 h1:wkAZRgT/pn8HhFyzfe9UnqOjJYqlembgCTi72Bm/xKk= -github.com/Azure/go-autorest/autorest/azure/auth v0.5.12/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.13 h1:Ov8avRZi2vmrE2JcXw+tu5K/yB41r7xK9GZDiBF7NdM= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.13/go.mod h1:5BAVfWLWXihP47vYrPuBKKf4cS0bXI+KM9Qx6ETDJYo= github.com/Azure/go-autorest/autorest/azure/cli v0.3.1/go.mod h1:ZG5p860J94/0kI9mNJVoIoLgXcirM2gF5i2kWloofxw= -github.com/Azure/go-autorest/autorest/azure/cli v0.4.5/go.mod h1:ADQAXrkgm7acgWVUNamOgh8YNrv4p27l3Wc55oVfpzg= github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 h1:w77/uPk80ZET2F+AfQExZyEWtn+0Rk/uw17m9fv5Ajc= github.com/Azure/go-autorest/autorest/azure/cli v0.4.6/go.mod h1:piCfgPho7BiIDdEQ1+g4VmKyD5y+p/XtSNqE6Hc4QD0= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= @@ -979,8 +978,8 @@ github.com/Showmax/go-fqdn v1.0.0 h1:0rG5IbmVliNT5O19Mfuvna9LL7zlHyRfsSvBPZmF9tM github.com/Showmax/go-fqdn v1.0.0/go.mod h1:SfrFBzmDCtCGrnHhoDjuvFnKsWjEQX/Q9ARZvOrJAko= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/Workiva/go-datastructures v1.1.0 h1:hu20UpgZneBhQ3ZvwiOGlqJSKIosin2Rd5wAKUHEO/k= -github.com/Workiva/go-datastructures v1.1.0/go.mod h1:1yZL+zfsztete+ePzZz/Zb1/t5BnDuE2Ya2MMGhzP6A= +github.com/Workiva/go-datastructures v1.1.5 h1:5YfhQ4ry7bZc2Mc7R0YZyYwpf5c6t1cEFvdAhd6Mkf4= +github.com/Workiva/go-datastructures v1.1.5/go.mod h1:1yZL+zfsztete+ePzZz/Zb1/t5BnDuE2Ya2MMGhzP6A= github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af h1:DBNMBMuMiWYu0b+8KMJuWmfCkcxl09JwdlqwDZZ6U14= github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw= github.com/aerospike/aerospike-client-go v1.27.0/go.mod h1:zj8LBEnWBDOVEIJt8LvaRvDG5ARAoa5dBeHaB472NRc= @@ -1141,8 +1140,8 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.33.2/go.mod h1:mVggCnIWoM09jP71Wh+ea github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= -github.com/axiomhq/hyperloglog v0.0.0-20240124082744-24bca3a5b39b h1:F3yMzKumBUQ6Fn0sYI1YQ16vQRucpZOfBQ9HXWl5+XI= -github.com/axiomhq/hyperloglog v0.0.0-20240124082744-24bca3a5b39b/go.mod h1:k08r+Yj1PRAmuayFiRK6MYuR5Ve4IuZtTfxErMIh0+c= +github.com/axiomhq/hyperloglog v0.0.0-20240507144631-af9851f82b27 h1:60m4tnanN1ctzIu4V3bfCNJ39BiOPSm1gHFlFjTkRE0= +github.com/axiomhq/hyperloglog v0.0.0-20240507144631-af9851f82b27/go.mod h1:k08r+Yj1PRAmuayFiRK6MYuR5Ve4IuZtTfxErMIh0+c= github.com/aybabtme/iocontrol v0.0.0-20150809002002-ad15bcfc95a0 h1:0NmehRCgyk5rljDQLKUO+cRJCnduDyn11+zGZIc9Z48= github.com/aybabtme/iocontrol v0.0.0-20150809002002-ad15bcfc95a0/go.mod h1:6L7zgvqo0idzI7IO8de6ZC051AfXb5ipkIJ7bIA2tGA= github.com/basgys/goxml2json v1.1.0 h1:4ln5i4rseYfXNd86lGEB+Vi652IsIXIvggKM/BhUKVw= @@ -1182,8 +1181,8 @@ github.com/briandowns/spinner v1.23.0 h1:alDF2guRWqa/FOZZYWjlMIx2L6H0wyewPxo/CH4 github.com/briandowns/spinner v1.23.0/go.mod h1:rPG4gmXeN3wQV/TsAY4w8lPdIM6RX3yqeBQJSrbXjuE= github.com/burningalchemist/sql_exporter v0.0.0-20240103092044-466b38b6abc4 h1:dgjwrjeVe90AeMhrx04TmDKjZe7xqKKEUxT3QKNx9RU= github.com/burningalchemist/sql_exporter v0.0.0-20240103092044-466b38b6abc4/go.mod h1:aRr7CZ/KleZpcDkQVsNeXE1BFT3xRG8baUHJ7J+j8NI= -github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b h1:6+ZFm0flnudZzdSE0JxlhR2hKnGPcNB35BjQf4RYQDY= -github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M= +github.com/c2h5oh/datasize v0.0.0-20231215233829-aa82cc1e6500 h1:6lhrsTEnloDPXyeZBvSYvQf8u86jbKehZPVDDlkgDl4= +github.com/c2h5oh/datasize v0.0.0-20231215233829-aa82cc1e6500/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M= github.com/caarlos0/env/v9 v9.0.0 h1:SI6JNsOA+y5gj9njpgybykATIylrRMklbs5ch6wO6pc= github.com/caarlos0/env/v9 v9.0.0/go.mod h1:ye5mlCVMYh6tZ+vCgrs/B95sj88cg5Tlnc0XIzgZ020= github.com/caio/go-tdigest v2.3.0+incompatible/go.mod h1:sHQM/ubZStBUmF1WbB8FAm8q9GjDajLC5T7ydxE3JHI= @@ -1214,9 +1213,15 @@ github.com/channelmeter/iso8601duration v0.0.0-20150204201828-8da3af7a2a61/go.mo github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= github.com/checkpoint-restore/go-criu/v6 v6.3.0 h1:mIdrSO2cPNWQY1truPg6uHLXyKHk3Z5Odx4wjKOASzA= github.com/checkpoint-restore/go-criu/v6 v6.3.0/go.mod h1:rrRTN/uSwY2X+BPRl/gkulo9gsKOSAeVp9/K2tv7xZI= +github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= +github.com/chromedp/chromedp v0.9.2/go.mod h1:LkSXJKONWTCHAfQasKFUZI+mxqS4tZqhmtGzzhLsnLs= +github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/cihub/seelog v0.0.0-20151216151435-d2c6e5aa9fbf/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= @@ -1479,8 +1484,8 @@ github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/fatih/structs v0.0.0-20180123065059-ebf56d35bba7/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/felixge/fgprof v0.9.3 h1:VvyZxILNuCiUCSXtPtYmmtGvb65nqXh2QFWc0Wpf2/g= -github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw= +github.com/felixge/fgprof v0.9.4 h1:ocDNwMFlnA0NU0zSB3I52xkO4sFXk80VK9lXjLClu88= +github.com/felixge/fgprof v0.9.4/go.mod h1:yKl+ERSa++RYOs32d8K6WEXCB4uXdLls4ZaZPpayhMM= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= @@ -1507,8 +1512,8 @@ github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/ github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= -github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= -github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= +github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gammazero/deque v0.2.1 h1:qSdsbG6pgp6nL7A0+K/B7s12mcCY/5l5SIUpMOl+dC0= github.com/gammazero/deque v0.2.1/go.mod h1:LFroj8x4cMYCukHJDbxFCkT+r9AndaJnFMuZDV34tuU= github.com/gavv/monotime v0.0.0-20190418164738-30dba4353424 h1:Vh7rylVZRZCj6W41lRlP17xPk4Nq260H4Xo/DDYmEZk= @@ -1634,6 +1639,9 @@ github.com/goburrow/modbus v0.1.0/go.mod h1:Kx552D5rLIS8E7TyUwQ/UdHEqvX5T8tyiGBT github.com/goburrow/serial v0.1.0/go.mod h1:sAiqG0nRVswsm1C97xsttiYCzSLBmUZ/VSlVLZJ8haA= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= +github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM= github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= @@ -1782,7 +1790,7 @@ github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= +github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= @@ -1791,8 +1799,8 @@ github.com/google/renameio/v2 v2.0.0/go.mod h1:BtmJXm5YlszgC+TD4HOEEUFgkJP3nLxeh github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= -github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -1823,8 +1831,8 @@ github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38 github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= -github.com/googleapis/gax-go/v2 v2.12.5 h1:8gw9KZK8TiVKB6q3zHY3SBzLnrGp6HQjyfYBYGmXdxA= -github.com/googleapis/gax-go/v2 v2.12.5/go.mod h1:BUDKcWo+RaKq5SC9vVYL0wLADa3VcfswbOMMRmB9H3E= +github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= +github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= @@ -1852,17 +1860,11 @@ github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoA github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gosnmp/gosnmp v1.37.0 h1:/Tf8D3b9wrnNuf/SfbvO+44mPrjVphBhRtcGg22V07Y= -github.com/gosnmp/gosnmp v1.37.0/go.mod h1:GDH9vNqpsD7f2HvZhKs5dlqSEcAS6s6Qp099oZRCR+M= github.com/gosnmp/gosnmp v1.38.0 h1:I5ZOMR8kb0DXAFg/88ACurnuwGwYkXWq3eLpJPHMEYc= github.com/gosnmp/gosnmp v1.38.0/go.mod h1:FE+PEZvKrFz9afP9ii1W3cprXuVZ17ypCcyyfYuu5LY= github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= github.com/grafana/alloy-remote-config v0.0.9 h1:gy34SxZ8Iq/HrDTIFZi80+8BlT+FnJhKiP9mryHNEUE= github.com/grafana/alloy-remote-config v0.0.9/go.mod h1:kHE1usYo2WAVCikQkIXuoG1Clz8BSdiz3kF+DZSCQ4k= -github.com/grafana/beyla v0.0.0-20250108110233-3f1b9b55c6dc h1:oY8yQB8IG0dBo1UrLlLC2CspxbiVtSWWExMxXOnfWgk= -github.com/grafana/beyla v0.0.0-20250108110233-3f1b9b55c6dc/go.mod h1:hpk185gTeIQXjxV/so9vAxhZtSEgm8ODanWXZNVnH2M= -github.com/grafana/beyla v1.9.1-0.20250122195759-1117708def46 h1:/aw+Ze9lUluE1hNZ0fAtwhmf2CKP0VbsLFumpN8xztY= -github.com/grafana/beyla v1.9.1-0.20250122195759-1117708def46/go.mod h1:CRWu15fkScScSYBlYUtdJu2Ak8ojGvnuwHToGGkaOXY= github.com/grafana/beyla v1.10.0-alloy h1:kGyZtBSS/Br2qdhbvzu8sVYZHuE9a3OzWpbp6gN55EY= github.com/grafana/beyla v1.10.0-alloy/go.mod h1:CRWu15fkScScSYBlYUtdJu2Ak8ojGvnuwHToGGkaOXY= github.com/grafana/cadvisor v0.0.0-20240729082359-1f04a91701e2 h1:ju6EcY2aEobeBg185ETtFCKj5WzaQ48qfkbsSRRQrF4= @@ -1873,27 +1875,27 @@ github.com/grafana/ckit v0.0.0-20241128150632-1e6dfe1c6183 h1:9ubc4+JkJ6lChOOxXs github.com/grafana/ckit v0.0.0-20241128150632-1e6dfe1c6183/go.mod h1:+Ddq4Cmuz2NnrPzhlZyEdxcDzsPhT6CW270t1aiCj5k= github.com/grafana/cloudflare-go v0.0.0-20230110200409-c627cf6792f2 h1:qhugDMdQ4Vp68H0tp/0iN17DM2ehRo1rLEdOFe/gB8I= github.com/grafana/cloudflare-go v0.0.0-20230110200409-c627cf6792f2/go.mod h1:w/aiO1POVIeXUQyl0VQSZjl5OAGDTL5aX+4v0RA1tcw= -github.com/grafana/dskit v0.0.0-20240104111617-ea101a3b86eb h1:AWE6+kvtE18HP+lRWNUCyvymyrFSXs6TcS2vXIXGIuw= -github.com/grafana/dskit v0.0.0-20240104111617-ea101a3b86eb/go.mod h1:kkWM4WUV230bNG3urVRWPBnSJHs64y/0RmWjftnnn0c= +github.com/grafana/dskit v0.0.0-20250131191929-eab36484cec2 h1:9xJDVoTFhzJZzvghXGDDQJapDQfYvVM+/TcWySUZ1VE= +github.com/grafana/dskit v0.0.0-20250131191929-eab36484cec2/go.mod h1:SPLNCARd4xdjCkue0O6hvuoveuS1dGJjDnfxYe405YQ= github.com/grafana/go-gelf/v2 v2.0.1 h1:BOChP0h/jLeD+7F9mL7tq10xVkDG15he3T1zHuQaWak= github.com/grafana/go-gelf/v2 v2.0.1/go.mod h1:lexHie0xzYGwCgiRGcvZ723bSNyNI8ZRD4s0CLobh90= github.com/grafana/go-offsets-tracker v0.1.7 h1:2zBQ7iiGzvyXY7LA8kaaSiEqH/Yx82UcfRabbY5aOG4= github.com/grafana/go-offsets-tracker v0.1.7/go.mod h1:qcQdu7zlUKIFNUdBJlLyNHuJGW0SKWKjkrN6jtt+jds= github.com/grafana/gocql v0.0.0-20200605141915-ba5dc39ece85/go.mod h1:crI9WX6p0IhrqB+DqIUHulRW853PaNFf7o4UprV//3I= -github.com/grafana/gomemcache v0.0.0-20231204155601-7de47a8c3cb0 h1:aLBiDMjTtXx2800iCIp+8kdjIlvGX0MF/zICQMQO2qU= -github.com/grafana/gomemcache v0.0.0-20231204155601-7de47a8c3cb0/go.mod h1:PGk3RjYHpxMM8HFPhKKo+vve3DdlPUELZLSDEFehPuU= +github.com/grafana/gomemcache v0.0.0-20240229205252-cd6a66d6fb56 h1:X8IKQ0wu40wpvYcKfBcc5T4QnhdQjUhtUtB/1CY89lE= +github.com/grafana/gomemcache v0.0.0-20240229205252-cd6a66d6fb56/go.mod h1:PGk3RjYHpxMM8HFPhKKo+vve3DdlPUELZLSDEFehPuU= github.com/grafana/jfr-parser v0.9.2 h1:Ba6hqld0oWAIcaY06K7c5DopnsVcAwXhRGS2zGbkDM0= github.com/grafana/jfr-parser v0.9.2/go.mod h1:KYbwbvXtBoOsYw9b9w8R01dbM5oVfopljq3hA1WDJMQ= github.com/grafana/jfr-parser/pprof v0.0.3 h1:GbhF9vVbfSUTpn0TPSdOBnDW8cKFQ3lqgiIH6/5Iyus= github.com/grafana/jfr-parser/pprof v0.0.3/go.mod h1:MccKegViSw2NsyXNww1yuIcaQlw6LxP/DT0CHlsfRgw= -github.com/grafana/jsonparser v0.0.0-20240209175146-098958973a2d h1:YwbJJ/PrVWVdnR+j/EAVuazdeP+Za5qbiH1Vlr+wFXs= -github.com/grafana/jsonparser v0.0.0-20240209175146-098958973a2d/go.mod h1:796sq+UcONnSlzA3RtlBZ+b/hrerkZXiEmO8oMjyRwY= +github.com/grafana/jsonparser v0.0.0-20240425183733-ea80629e1a32 h1:NznuPwItog+rwdVg8hAuGKP29ndRSzJAwhxKldkP8oQ= +github.com/grafana/jsonparser v0.0.0-20240425183733-ea80629e1a32/go.mod h1:796sq+UcONnSlzA3RtlBZ+b/hrerkZXiEmO8oMjyRwY= github.com/grafana/kafka_exporter v0.0.0-20240409084445-5e3488ad9f9a h1:jqM4NNdx8LSquKo8bPx+XWn91S2b+sgNvEcFfSJQtHY= github.com/grafana/kafka_exporter v0.0.0-20240409084445-5e3488ad9f9a/go.mod h1:ZXGGyeTUMenf/H1CDBK9lv3azjswfa0nVzLoQAYmnDc= -github.com/grafana/loki/pkg/push v0.0.0-20240617182007-6c33561108ad h1:4XAhmVmKbGoxmEPaeXWVib4M+SvCaTk2L+W612KRQ3s= -github.com/grafana/loki/pkg/push v0.0.0-20240617182007-6c33561108ad/go.mod h1:lJEF/Wh5MYlmBem6tOYAFObkLsuikfrEf8Iy9AdMPiQ= -github.com/grafana/loki/v3 v3.0.0-20240617182007-6c33561108ad h1:eaHz6gH7OM3LWGp1h2QZ+/wkeyjNspk3QwjD4YUWR5g= -github.com/grafana/loki/v3 v3.0.0-20240617182007-6c33561108ad/go.mod h1:fKBY3k60xjlGcIdbOaJiy3aWopF65FpQvQWczCp2SZ0= +github.com/grafana/loki/pkg/push v0.0.0-20240828191521-eacfef824138 h1:cOGhEtugdaSvULCBlk+q/Zy/Ejxag0rMFEZ+VyilkgM= +github.com/grafana/loki/pkg/push v0.0.0-20240828191521-eacfef824138/go.mod h1:lJEF/Wh5MYlmBem6tOYAFObkLsuikfrEf8Iy9AdMPiQ= +github.com/grafana/loki/v3 v3.0.0-20240828191521-eacfef824138 h1:s6tYNRFlNrFHwBIhwj/3JW2zn8zUlC4N4onixIZZT1I= +github.com/grafana/loki/v3 v3.0.0-20240828191521-eacfef824138/go.mod h1:P9dqRZ8i3bmpkJ0S7n7mA7vh4vIR1tcPcN/+UD34lgc= github.com/grafana/mysqld_exporter v0.16.1-0.20241128200101-e16f5286d5e9 h1:2nQItBsfp7hy+AMq1MBFW6p9Ax08nAsdR8u21rWZItQ= github.com/grafana/mysqld_exporter v0.16.1-0.20241128200101-e16f5286d5e9/go.mod h1:ctzLZ0vK3ow5JZmBfbS261ufC/4vtfuwFileKJea3kg= github.com/grafana/node_exporter v0.18.1-grafana-r01.0.20231004161416-702318429731 h1:vyyIYY2sLpmgFIckJ1vSO/oYkvB0thDF6UiFYp5PThM= @@ -1902,8 +1904,8 @@ github.com/grafana/opentelemetry-collector/featuregate v0.0.0-20240325174506-2fd github.com/grafana/opentelemetry-collector/featuregate v0.0.0-20240325174506-2fd1623b2ca0/go.mod h1:mm8+xyQfgDmqhyegZRNIQmoKsNnDTwWKFLsdMoXAb7A= github.com/grafana/postgres_exporter v0.15.1-0.20241105053755-e0a51174f168 h1:I7FyVTtge/3G5YHVOMDG0l4If6W+kXbFDqtzj5gCSGs= github.com/grafana/postgres_exporter v0.15.1-0.20241105053755-e0a51174f168/go.mod h1:dMrETGkSetWByp2XGsm8g6pRVh/ibnrDxKsN4BqnGNg= -github.com/grafana/prometheus v1.8.2-0.20240514135907-13889ba362e6 h1:kih3d3M3dxAmrpFLvnIxFzWx8KMQyKxQwKgWP67C/Fg= -github.com/grafana/prometheus v1.8.2-0.20240514135907-13889ba362e6/go.mod h1:yv4MwOn3yHMQ6MZGHPg/U7Fcyqf+rxqiZfSur6myVtc= +github.com/grafana/prometheus v1.8.2-0.20240827140850-d665aef8a4ac h1:+zEyixkKR6tYHQc2fTx4Nkj0Fhe9E+WzSwokEgmbrp0= +github.com/grafana/prometheus v1.8.2-0.20240827140850-d665aef8a4ac/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx98BzeCR99991NY= github.com/grafana/pyroscope-go/godeltaprof v0.1.8 h1:iwOtYXeeVSAeYefJNaxDytgjKtUuKQbJqgAIjlnicKg= github.com/grafana/pyroscope-go/godeltaprof v0.1.8/go.mod h1:2+l7K7twW49Ct4wFluZD3tZ6e0SjanjcUUBPVD/UuGU= github.com/grafana/pyroscope/api v1.2.0 h1:SfHDZcEZ4Vbj/Jj3bTOSpm4IDB33wLA2xBYxROhiL4U= @@ -1992,8 +1994,9 @@ github.com/hashicorp/go-kms-wrapping/entropy v0.1.0/go.mod h1:d1g9WGtAunDNpek8jU github.com/hashicorp/go-memdb v0.0.0-20180223233045-1289e7fffe71/go.mod h1:kbfItVoBJwCfKXDXN4YoAXjxcFVZ7MRrJzyTX6H4giE= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-msgpack v0.5.4/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI= github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-msgpack v1.1.5 h1:9byZdVjKTe5mce63pRVNP1L7UAmdHOTEMGehn6KvJWs= +github.com/hashicorp/go-msgpack v1.1.5/go.mod h1:gWVc3sv/wbDmR3rQsj1CAktEZzoz1YNK9NfGLXJ69/4= github.com/hashicorp/go-msgpack/v2 v2.1.1 h1:xQEY9yB2wnHitoSzk/B9UjXWRQ67QKu5AOm8aFp8N3I= github.com/hashicorp/go-msgpack/v2 v2.1.1/go.mod h1:upybraOAblm4S7rx0+jeNy+CWWhzywQsSRV5033mMu4= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= @@ -2125,9 +2128,7 @@ github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSAS github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= -github.com/ianlancetaylor/demangle v0.0.0-20240312041847-bd984b5ce465 h1:KwWnWVWCNtNq/ewIX7HIKnELmEx2nDP42yskD/pi7QE= -github.com/ianlancetaylor/demangle v0.0.0-20240312041847-bd984b5ce465/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= +github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/ianlancetaylor/demangle v0.0.0-20240912202439-0a2b6291aafd h1:EVX1s+XNss9jkRW9K6XGJn2jL2lB1h5H804oKPsxOec= github.com/ianlancetaylor/demangle v0.0.0-20240912202439-0a2b6291aafd/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/illumos/go-kstat v0.0.0-20210513183136-173c9b0a9973 h1:hk4LPqXIY/c9XzRbe7dA6qQxaT6Axcbny0L/G5a4owQ= @@ -2323,8 +2324,8 @@ github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHU github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= -github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= +github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/knadh/koanf v1.5.0 h1:q2TSd/3Pyc/5yP9ldIrSdIz26MCcyNQzW0pEAugLPNs= github.com/knadh/koanf v1.5.0/go.mod h1:Hgyjp4y8v44hpZtPzs7JZfRAW5AhN7KfZcwv1RYggDs= github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= @@ -2353,6 +2354,7 @@ github.com/krallistic/kazoo-go v0.0.0-20170526135507-a15279744f4e/go.mod h1:Rq60 github.com/kubernetes/apimachinery v0.0.0-20190119020841-d41becfba9ee/go.mod h1:Pe/YBTPc3vqoMkbuIWPH8CF9ehINdvNyS0dP3J6HC0s= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= github.com/leesper/go_rng v0.0.0-20190531154944-a612b043e353/go.mod h1:N0SVk0uhy+E1PZ3C9ctsPRlvOPAFPkCNlcPBDkt0N3U= github.com/leodido/go-syslog/v4 v4.2.0 h1:A7vpbYxsO4e2E8udaurkLlxP5LDpDbmPMsGnuhb7jVk= github.com/leodido/go-syslog/v4 v4.2.0/go.mod h1:eJ8rUfDN5OS6dOkCOBYlg2a+hbAg6pJa99QXXgMrd98= @@ -2793,13 +2795,14 @@ github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/openzipkin/zipkin-go v0.4.3 h1:9EGwpqkgnwdEIJ+Od7QVSEIH+ocmm5nPat0G7sjsSdg= github.com/openzipkin/zipkin-go v0.4.3/go.mod h1:M9wCJZFWCo2RiY+o1eBCEMe0Dp2S5LDHcMZmk3RmK7c= github.com/openzipkin/zipkin-go-opentracing v0.3.4/go.mod h1:js2AbwmHW0YD9DwIw2JhQWmbfFi/UnWyYwdVhqbCDOE= +github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= github.com/ory/dockertest v3.3.4+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/ory/dockertest/v3 v3.8.1 h1:vU/8d1We4qIad2YM0kOwRVtnyue7ExvacPiw1yDm17g= github.com/ory/dockertest/v3 v3.8.1/go.mod h1:wSRQ3wmkz+uSARYMk7kVJFDBGm8x5gSxIhI7NDc+BAQ= -github.com/oschwald/geoip2-golang v1.9.0 h1:uvD3O6fXAXs+usU+UGExshpdP13GAqp4GBrzN7IgKZc= -github.com/oschwald/geoip2-golang v1.9.0/go.mod h1:BHK6TvDyATVQhKNbQBdrj9eAvuwOMi2zSFXizL3K81Y= -github.com/oschwald/maxminddb-golang v1.11.0 h1:aSXMqYR/EPNjGE8epgqwDay+P30hCBZIveY0WZbAWh0= -github.com/oschwald/maxminddb-golang v1.11.0/go.mod h1:YmVI+H0zh3ySFR3w+oz8PCfglAFj3PuCmui13+P9zDg= +github.com/oschwald/geoip2-golang v1.11.0 h1:hNENhCn1Uyzhf9PTmquXENiWS6AlxAEnBII6r8krA3w= +github.com/oschwald/geoip2-golang v1.11.0/go.mod h1:P9zG+54KPEFOliZ29i7SeYZ/GM6tfEL+rgSn03hYuUo= +github.com/oschwald/maxminddb-golang v1.13.0 h1:R8xBorY71s84yO06NgTmQvqvTvlS/bnYZrrWX1MElnU= +github.com/oschwald/maxminddb-golang v1.13.0/go.mod h1:BU0z8BfFVhi1LQaonTwwGQlsHUEu9pWNdMfmq4ztm0o= github.com/outcaste-io/ristretto v0.2.1 h1:KCItuNIGJZcursqHr3ghO7fc5ddZLEHspL9UR0cQM64= github.com/outcaste-io/ristretto v0.2.1/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= github.com/ovh/go-ovh v1.6.0 h1:ixLOwxQdzYDx296sXcgS35TOPEahJkpjMGtzPadCjQI= @@ -2845,6 +2848,8 @@ github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pires/go-proxyproto v0.7.0 h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs= +github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= @@ -3589,7 +3594,6 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -3929,6 +3933,7 @@ golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -4031,6 +4036,7 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190424220101-1e8e1cfdf96b/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -4191,8 +4197,8 @@ google.golang.org/api v0.118.0/go.mod h1:76TtD3vkgmZ66zZzp72bUUklpmQmKlhh6sYtIjY google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4= google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= -google.golang.org/api v0.188.0 h1:51y8fJ/b1AaaBRJr4yWm96fPcuxSo0JcegXE3DaHQHw= -google.golang.org/api v0.188.0/go.mod h1:VR0d+2SIiWOYG3r/jdm7adPW9hI2aRv9ETOSCQ9Beag= +google.golang.org/api v0.193.0 h1:eOGDoJFsLU+HpCBaDJex2fWiYujAw9KbXgpOAMePoUs= +google.golang.org/api v0.193.0/go.mod h1:Po3YMV1XZx+mTku3cfJrlIYR03wiGrCOsdpC67hjZvw= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -4345,8 +4351,8 @@ google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOl google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= -google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b h1:dSTjko30weBaMj3eERKc0ZVXW4GudCswM3m+P++ukU0= -google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b/go.mod h1:FfBgJBJg9GcpPvKIuHSZ/aE1g2ecGL74upMzGZjiGEY= +google.golang.org/genproto v0.0.0-20240820151423-278611b39280 h1:oKt8r1ZvaPqBe3oeGTdyx1iNjuBS+VJcc9QdU1CD3d8= +google.golang.org/genproto v0.0.0-20240820151423-278611b39280/go.mod h1:wxEc5TmU9JSLs1rSqG4z1YzeSNigp/9yIojIPuZVvKQ= google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= diff --git a/internal/cmd/integration-tests/tests/scrape-prom-metrics/config.alloy b/internal/cmd/integration-tests/tests/scrape-prom-metrics/config.alloy index 682b6ecc1d..3ee7493b55 100644 --- a/internal/cmd/integration-tests/tests/scrape-prom-metrics/config.alloy +++ b/internal/cmd/integration-tests/tests/scrape-prom-metrics/config.alloy @@ -4,7 +4,7 @@ prometheus.scrape "scrape_prom_metrics" { ] forward_to = [prometheus.remote_write.scrape_prom_metrics.receiver, otelcol.receiver.prometheus.scrape_prom_metrics_to_otlp.receiver] scrape_classic_histograms = true - enable_protobuf_negotiation = true + scrape_protocols = ["PrometheusProto", "OpenMetricsText1.0.0", "OpenMetricsText0.0.1", "PrometheusText0.0.4"] scrape_interval = "1s" scrape_timeout = "500ms" } diff --git a/internal/component/discovery/docker/docker.go b/internal/component/discovery/docker/docker.go index a6d72f5bcd..b82a880240 100644 --- a/internal/component/discovery/docker/docker.go +++ b/internal/component/discovery/docker/docker.go @@ -34,6 +34,7 @@ type Arguments struct { Port int `alloy:"port,attr,optional"` HostNetworkingHost string `alloy:"host_networking_host,attr,optional"` RefreshInterval time.Duration `alloy:"refresh_interval,attr,optional"` + MatchFirstNetwork bool `alloy:"match_first_network,attr,optional"` Filters []Filter `alloy:"filter,block,optional"` HTTPClientConfig config.HTTPClientConfig `alloy:",squash"` } @@ -59,6 +60,7 @@ var DefaultArguments = Arguments{ HostNetworkingHost: "localhost", RefreshInterval: time.Minute, HTTPClientConfig: config.DefaultHTTPClientConfig, + MatchFirstNetwork: true, } // SetToDefault implements syntax.Defaulter. @@ -94,6 +96,7 @@ func (args Arguments) Convert() discovery.DiscovererConfig { Port: args.Port, Filters: filters, HostNetworkingHost: args.HostNetworkingHost, + MatchFirstNetwork: args.MatchFirstNetwork, RefreshInterval: model.Duration(args.RefreshInterval), } diff --git a/internal/component/discovery/linode/linode.go b/internal/component/discovery/linode/linode.go index 931fbbdff0..2355b691c5 100644 --- a/internal/component/discovery/linode/linode.go +++ b/internal/component/discovery/linode/linode.go @@ -31,6 +31,7 @@ type Arguments struct { RefreshInterval time.Duration `alloy:"refresh_interval,attr,optional"` Port int `alloy:"port,attr,optional"` TagSeparator string `alloy:"tag_separator,attr,optional"` + Region string `alloy:"region,attr,optional"` HTTPClientConfig config.HTTPClientConfig `alloy:",squash"` } @@ -39,6 +40,7 @@ var DefaultArguments = Arguments{ TagSeparator: ",", Port: 80, RefreshInterval: 60 * time.Second, + Region: "", HTTPClientConfig: config.DefaultHTTPClientConfig, } @@ -61,6 +63,7 @@ func (args Arguments) Convert() discovery.DiscovererConfig { RefreshInterval: model.Duration(args.RefreshInterval), Port: args.Port, TagSeparator: args.TagSeparator, + Region: args.Region, HTTPClientConfig: *(args.HTTPClientConfig.Convert()), } } diff --git a/internal/component/discovery/linode/linode_test.go b/internal/component/discovery/linode/linode_test.go index 5d5132d10c..de0b1c38a8 100644 --- a/internal/component/discovery/linode/linode_test.go +++ b/internal/component/discovery/linode/linode_test.go @@ -33,6 +33,7 @@ func TestConvert(t *testing.T) { Port: 8080, RefreshInterval: 15 * time.Second, TagSeparator: ";", + Region: "us-west", HTTPClientConfig: config.HTTPClientConfig{ BearerToken: "FOO", BasicAuth: &config.BasicAuth{ @@ -45,6 +46,7 @@ func TestConvert(t *testing.T) { promArgs := alloyArgs.Convert().(*prom_discovery.SDConfig) require.Equal(t, 8080, promArgs.Port) require.Equal(t, model.Duration(15*time.Second), promArgs.RefreshInterval) + require.Equal(t, "us-west", promArgs.Region) require.Equal(t, ";", promArgs.TagSeparator) require.Equal(t, promconfig.Secret("FOO"), promArgs.HTTPClientConfig.BearerToken) require.Equal(t, "test", promArgs.HTTPClientConfig.BasicAuth.Username) diff --git a/internal/component/faro/receiver/server.go b/internal/component/faro/receiver/server.go index 15d35248bb..4ad3cdfa52 100644 --- a/internal/component/faro/receiver/server.go +++ b/internal/component/faro/receiver/server.go @@ -85,16 +85,20 @@ func (s *server) Run(ctx context.Context) error { }) mw := middleware.Instrument{ - RouteMatcher: r, Duration: s.metrics.requestDuration, RequestBodySize: s.metrics.rxMessageSize, ResponseBodySize: s.metrics.txMessageSize, InflightRequests: s.metrics.inflightRequests, } + ri := middleware.RouteInjector{ + RouteMatcher: r, + } + riHandler := ri.Wrap(r) + srv := &http.Server{ Addr: fmt.Sprintf("%s:%d", s.args.Host, s.args.Port), - Handler: mw.Wrap(r), + Handler: mw.Wrap(riHandler), } errCh := make(chan error, 1) diff --git a/internal/component/loki/source/api/internal/lokipush/push_api_server.go b/internal/component/loki/source/api/internal/lokipush/push_api_server.go index c99a6f4894..62c9ecb905 100644 --- a/internal/component/loki/source/api/internal/lokipush/push_api_server.go +++ b/internal/component/loki/source/api/internal/lokipush/push_api_server.go @@ -162,7 +162,7 @@ func (s *PushAPIServer) handleLoki(w http.ResponseWriter, r *http.Request) { tenantID, r, nil, // tenants retention - nil, // limits + push.EmptyLimits{}, push.ParseLokiRequest, nil, // usage tracker ) diff --git a/internal/component/prometheus/receive_http/receive_http.go b/internal/component/prometheus/receive_http/receive_http.go index 7a1f80aca4..7eafe8a0e0 100644 --- a/internal/component/prometheus/receive_http/receive_http.go +++ b/internal/component/prometheus/receive_http/receive_http.go @@ -16,6 +16,7 @@ import ( "github.com/grafana/alloy/internal/service/labelstore" "github.com/grafana/alloy/internal/util" "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/prometheus/config" "github.com/prometheus/prometheus/storage" "github.com/prometheus/prometheus/storage/remote" ) @@ -66,9 +67,12 @@ func New(opts component.Options, args Arguments) (*Component, error) { uncheckedCollector := util.NewUncheckedCollector(nil) opts.Registerer.MustRegister(uncheckedCollector) + //TODO: Make this configurable in the future? + supportedRemoteWriteProtoMsgs := config.RemoteWriteProtoMsgs{config.RemoteWriteProtoMsgV1} + c := &Component{ opts: opts, - handler: remote.NewWriteHandler(opts.Logger, opts.Registerer, fanout), + handler: remote.NewWriteHandler(opts.Logger, opts.Registerer, fanout, supportedRemoteWriteProtoMsgs), fanout: fanout, uncheckedCollector: uncheckedCollector, } diff --git a/internal/component/prometheus/receive_http/receive_http_test.go b/internal/component/prometheus/receive_http/receive_http_test.go index 224a9adc0b..516470e5da 100644 --- a/internal/component/prometheus/receive_http/receive_http_test.go +++ b/internal/component/prometheus/receive_http/receive_http_test.go @@ -22,6 +22,7 @@ import ( "github.com/prometheus/prometheus/prompb" "github.com/prometheus/prometheus/storage" "github.com/prometheus/prometheus/storage/remote" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/protoadapt" @@ -30,14 +31,14 @@ import ( func TestForwardsMetrics(t *testing.T) { timestamp := time.Now().Add(time.Second).UnixMilli() input := []prompb.TimeSeries{{ - Labels: []prompb.Label{{Name: "cluster", Value: "local"}, {Name: "foo", Value: "bar"}}, + Labels: []prompb.Label{{Name: "__name__", Value: "test_metric"}, {Name: "cluster", Value: "local"}, {Name: "foo", Value: "bar"}}, Samples: []prompb.Sample{ {Timestamp: timestamp, Value: 12}, {Timestamp: timestamp + 1, Value: 24}, {Timestamp: timestamp + 2, Value: 48}, }, }, { - Labels: []prompb.Label{{Name: "cluster", Value: "local"}, {Name: "fizz", Value: "buzz"}}, + Labels: []prompb.Label{{Name: "__name__", Value: "test_metric"}, {Name: "cluster", Value: "local"}, {Name: "fizz", Value: "buzz"}}, Samples: []prompb.Sample{ {Timestamp: timestamp, Value: 191}, {Timestamp: timestamp + 1, Value: 1337}, @@ -45,11 +46,11 @@ func TestForwardsMetrics(t *testing.T) { }} expected := []testSample{ - {ts: timestamp, val: 12, l: labels.FromStrings("cluster", "local", "foo", "bar")}, - {ts: timestamp + 1, val: 24, l: labels.FromStrings("cluster", "local", "foo", "bar")}, - {ts: timestamp + 2, val: 48, l: labels.FromStrings("cluster", "local", "foo", "bar")}, - {ts: timestamp, val: 191, l: labels.FromStrings("cluster", "local", "fizz", "buzz")}, - {ts: timestamp + 1, val: 1337, l: labels.FromStrings("cluster", "local", "fizz", "buzz")}, + {ts: timestamp, val: 12, l: labels.FromStrings("__name__", "test_metric", "cluster", "local", "foo", "bar")}, + {ts: timestamp + 1, val: 24, l: labels.FromStrings("__name__", "test_metric", "cluster", "local", "foo", "bar")}, + {ts: timestamp + 2, val: 48, l: labels.FromStrings("__name__", "test_metric", "cluster", "local", "foo", "bar")}, + {ts: timestamp, val: 191, l: labels.FromStrings("__name__", "test_metric", "cluster", "local", "fizz", "buzz")}, + {ts: timestamp + 1, val: 1337, l: labels.FromStrings("__name__", "test_metric", "cluster", "local", "fizz", "buzz")}, } actualSamples := make(chan testSample, 100) @@ -81,37 +82,37 @@ func TestForwardsMetrics(t *testing.T) { func TestUpdate(t *testing.T) { timestamp := time.Now().Add(time.Second).UnixMilli() input01 := []prompb.TimeSeries{{ - Labels: []prompb.Label{{Name: "cluster", Value: "local"}, {Name: "foo", Value: "bar"}}, + Labels: []prompb.Label{{Name: "__name__", Value: "test_metric"}, {Name: "cluster", Value: "local"}, {Name: "foo", Value: "bar"}}, Samples: []prompb.Sample{ {Timestamp: timestamp, Value: 12}, }, }, { - Labels: []prompb.Label{{Name: "cluster", Value: "local"}, {Name: "fizz", Value: "buzz"}}, + Labels: []prompb.Label{{Name: "__name__", Value: "test_metric"}, {Name: "cluster", Value: "local"}, {Name: "fizz", Value: "buzz"}}, Samples: []prompb.Sample{ {Timestamp: timestamp, Value: 191}, }, }} expected01 := []testSample{ - {ts: timestamp, val: 12, l: labels.FromStrings("cluster", "local", "foo", "bar")}, - {ts: timestamp, val: 191, l: labels.FromStrings("cluster", "local", "fizz", "buzz")}, + {ts: timestamp, val: 12, l: labels.FromStrings("__name__", "test_metric", "cluster", "local", "foo", "bar")}, + {ts: timestamp, val: 191, l: labels.FromStrings("__name__", "test_metric", "cluster", "local", "fizz", "buzz")}, } input02 := []prompb.TimeSeries{{ - Labels: []prompb.Label{{Name: "cluster", Value: "local"}, {Name: "foo", Value: "bar"}}, + Labels: []prompb.Label{{Name: "__name__", Value: "test_metric"}, {Name: "cluster", Value: "local"}, {Name: "foo", Value: "bar"}}, Samples: []prompb.Sample{ {Timestamp: timestamp + 1, Value: 24}, {Timestamp: timestamp + 2, Value: 48}, }, }, { - Labels: []prompb.Label{{Name: "cluster", Value: "local"}, {Name: "fizz", Value: "buzz"}}, + Labels: []prompb.Label{{Name: "__name__", Value: "test_metric"}, {Name: "cluster", Value: "local"}, {Name: "fizz", Value: "buzz"}}, Samples: []prompb.Sample{ {Timestamp: timestamp + 1, Value: 1337}, }, }} expected02 := []testSample{ - {ts: timestamp + 1, val: 24, l: labels.FromStrings("cluster", "local", "foo", "bar")}, - {ts: timestamp + 2, val: 48, l: labels.FromStrings("cluster", "local", "foo", "bar")}, - {ts: timestamp + 1, val: 1337, l: labels.FromStrings("cluster", "local", "fizz", "buzz")}, + {ts: timestamp + 1, val: 24, l: labels.FromStrings("__name__", "test_metric", "cluster", "local", "foo", "bar")}, + {ts: timestamp + 2, val: 48, l: labels.FromStrings("__name__", "test_metric", "cluster", "local", "foo", "bar")}, + {ts: timestamp + 1, val: 1337, l: labels.FromStrings("__name__", "test_metric", "cluster", "local", "fizz", "buzz")}, } actualSamples := make(chan testSample, 100) @@ -287,14 +288,15 @@ type testSample struct { } func waitForServerToBeReady(t *testing.T, args Arguments) { - require.Eventuallyf(t, func() bool { + require.EventuallyWithT(t, func(c *assert.CollectT) { resp, err := http.Get(fmt.Sprintf( "http://%v:%d/wrong/path", args.Server.HTTP.ListenAddress, args.Server.HTTP.ListenPort, )) t.Logf("err: %v, resp: %v", err, resp) - return err == nil && resp.StatusCode == 404 + assert.Nil(c, err) + assert.Equal(c, 404, resp.StatusCode) }, 5*time.Second, 20*time.Millisecond, "server failed to start before timeout") } @@ -376,7 +378,8 @@ func request(ctx context.Context, rawRemoteWriteURL string, req *prompb.WriteReq } compressed := snappy.Encode(buf, buf) - return client.Store(ctx, compressed, 0) + _, err = client.Store(ctx, compressed, 0) + return err } func testOptions(t *testing.T) component.Options { diff --git a/internal/component/prometheus/remotewrite/remote_write.go b/internal/component/prometheus/remotewrite/remote_write.go index 144a742c6d..0861c076a3 100644 --- a/internal/component/prometheus/remotewrite/remote_write.go +++ b/internal/component/prometheus/remotewrite/remote_write.go @@ -85,7 +85,7 @@ func New(o component.Options, c Arguments) (*Component, error) { } remoteLogger := log.With(o.Logger, "subcomponent", "rw") - remoteStore := remote.NewStorage(remoteLogger, o.Registerer, startTime, o.DataPath, remoteFlushDeadline, nil) + remoteStore := remote.NewStorage(remoteLogger, o.Registerer, startTime, o.DataPath, remoteFlushDeadline, nil, false) walStorage.SetNotifier(remoteStore) diff --git a/internal/component/prometheus/remotewrite/types.go b/internal/component/prometheus/remotewrite/types.go index 74dcf835d0..f6046b3a98 100644 --- a/internal/component/prometheus/remotewrite/types.go +++ b/internal/component/prometheus/remotewrite/types.go @@ -11,6 +11,7 @@ import ( "github.com/grafana/alloy/syntax/alloytypes" "github.com/google/uuid" + "github.com/grafana/regexp" common "github.com/prometheus/common/config" "github.com/prometheus/common/model" promsigv4 "github.com/prometheus/common/sigv4" @@ -242,6 +243,9 @@ func convertConfigs(cfg Arguments) (*config.Config, error) { SendExemplars: rw.SendExemplars, SendNativeHistograms: rw.SendNativeHistograms, + //TODO: Make this configurable? + ProtobufMessage: config.RemoteWriteProtoMsgV1, + WriteRelabelConfigs: alloy_relabel.ComponentToPromRelabelConfigs(rw.WriteRelabelConfigs), HTTPClientConfig: *rw.HTTPClientConfig.Convert(), QueueConfig: rw.QueueOptions.toPrometheusType(), @@ -274,15 +278,66 @@ type ManagedIdentityConfig struct { ClientID string `alloy:"client_id,attr"` } -func (m ManagedIdentityConfig) toPrometheusType() azuread.ManagedIdentityConfig { - return azuread.ManagedIdentityConfig{ +func (m *ManagedIdentityConfig) toPrometheusType() *azuread.ManagedIdentityConfig { + if m == nil { + return nil + } + + return &azuread.ManagedIdentityConfig{ ClientID: m.ClientID, } } +// OAuthConfig is used to store azure oauth config values. +type OAuthConfig struct { + // ClientID is the clientId of the azure active directory application that is being used to authenticate. + ClientID string `alloy:"client_id,attr"` + + // ClientSecret is the clientSecret of the azure active directory application that is being used to authenticate. + ClientSecret alloytypes.Secret `alloy:"client_secret,attr"` + + // TenantID is the tenantId of the azure active directory application that is being used to authenticate. + TenantID string `alloy:"tenant_id,attr"` +} + +func (c *OAuthConfig) toPrometheusType() *azuread.OAuthConfig { + if c == nil { + return nil + } + + return &azuread.OAuthConfig{ + ClientID: c.ClientID, + //TODO(ptodev): Upstream a change to make this an opaque string. + ClientSecret: string(c.ClientSecret), + TenantID: c.TenantID, + } +} + +// SDKConfig is used to store azure SDK config values. +type SDKConfig struct { + // TenantID is the tenantId of the azure active directory application that is being used to authenticate. + TenantID string `alloy:"tenant_id,attr"` +} + +func (c *SDKConfig) toPrometheusType() *azuread.SDKConfig { + if c == nil { + return nil + } + + return &azuread.SDKConfig{ + TenantID: c.TenantID, + } +} + type AzureADConfig struct { // ManagedIdentity is the managed identity that is being used to authenticate. - ManagedIdentity ManagedIdentityConfig `alloy:"managed_identity,block"` + ManagedIdentity *ManagedIdentityConfig `alloy:"managed_identity,block,optional"` + + // OAuth is the oauth config that is being used to authenticate. + OAuth *OAuthConfig `alloy:"oauth,block,optional"` + + // SDK is the SDK config that is being used to authenticate. + SDK *SDKConfig `alloy:"sdk,block,optional"` // Cloud is the Azure cloud in which the service is running. Example: AzurePublic/AzureGovernment/AzureChina. Cloud string `alloy:"cloud,attr,optional"` @@ -293,9 +348,64 @@ func (a *AzureADConfig) Validate() error { return fmt.Errorf("must provide a cloud in the Azure AD config") } - _, err := uuid.Parse(a.ManagedIdentity.ClientID) - if err != nil { - return fmt.Errorf("the provided Azure Managed Identity client_id provided is invalid") + if a.ManagedIdentity == nil && a.OAuth == nil && a.SDK == nil { + return fmt.Errorf("must provide an Azure Managed Identity, Azure OAuth or Azure SDK in the Azure AD config") + } + + if a.ManagedIdentity != nil && a.OAuth != nil { + return fmt.Errorf("cannot provide both Azure Managed Identity and Azure OAuth in the Azure AD config") + } + + if a.ManagedIdentity != nil && a.SDK != nil { + return fmt.Errorf("cannot provide both Azure Managed Identity and Azure SDK in the Azure AD config") + } + + if a.OAuth != nil && a.SDK != nil { + return fmt.Errorf("cannot provide both Azure OAuth and Azure SDK in the Azure AD config") + } + + if a.ManagedIdentity != nil { + if a.ManagedIdentity.ClientID == "" { + return fmt.Errorf("must provide an Azure Managed Identity client_id in the Azure AD config") + } + + _, err := uuid.Parse(a.ManagedIdentity.ClientID) + if err != nil { + return fmt.Errorf("the provided Azure Managed Identity client_id is invalid") + } + } + + if a.OAuth != nil { + if a.OAuth.ClientID == "" { + return fmt.Errorf("must provide an Azure OAuth client_id in the Azure AD config") + } + if a.OAuth.ClientSecret == "" { + return fmt.Errorf("must provide an Azure OAuth client_secret in the Azure AD config") + } + if a.OAuth.TenantID == "" { + return fmt.Errorf("must provide an Azure OAuth tenant_id in the Azure AD config") + } + + var err error + _, err = uuid.Parse(a.OAuth.ClientID) + if err != nil { + return fmt.Errorf("the provided Azure OAuth client_id is invalid") + } + _, err = regexp.MatchString("^[0-9a-zA-Z-.]+$", a.OAuth.TenantID) + if err != nil { + return fmt.Errorf("the provided Azure OAuth tenant_id is invalid") + } + } + + if a.SDK != nil { + var err error + + if a.SDK.TenantID != "" { + _, err = regexp.MatchString("^[0-9a-zA-Z-.]+$", a.SDK.TenantID) + if err != nil { + return fmt.Errorf("the provided Azure OAuth tenant_id is invalid") + } + } } return nil @@ -313,9 +423,10 @@ func (a *AzureADConfig) toPrometheusType() *azuread.AzureADConfig { return nil } - mangedIdentity := a.ManagedIdentity.toPrometheusType() return &azuread.AzureADConfig{ - ManagedIdentity: &mangedIdentity, + ManagedIdentity: a.ManagedIdentity.toPrometheusType(), + OAuth: a.OAuth.toPrometheusType(), + SDK: a.SDK.toPrometheusType(), Cloud: a.Cloud, } } diff --git a/internal/component/prometheus/remotewrite/types_test.go b/internal/component/prometheus/remotewrite/types_test.go index 839141c38f..d285c2c736 100644 --- a/internal/component/prometheus/remotewrite/types_test.go +++ b/internal/component/prometheus/remotewrite/types_test.go @@ -77,7 +77,9 @@ func TestAlloyConfig(t *testing.T) { url = "http://0.0.0.0:11111/api/v1/write" } `, - expectedCfg: expectedCfg(nil), + expectedCfg: expectedCfg(func(c *config.Config) { + c.RemoteWriteConfigs[0].ProtobufMessage = config.RemoteWriteProtoMsgV1 + }), }, { testName: "RelabelConfig", @@ -116,6 +118,7 @@ func TestAlloyConfig(t *testing.T) { c.RemoteWriteConfigs[0].WriteRelabelConfigs = []*relabel.Config{ relabelCfg, } + c.RemoteWriteConfigs[0].ProtobufMessage = config.RemoteWriteProtoMsgV1 }), }, { @@ -126,7 +129,7 @@ func TestAlloyConfig(t *testing.T) { azuread { managed_identity { - client_id = "00000000-0000-0000-0000-000000000000" + client_id = "f47ac10b-58cc-0372-8567-0e02b2c3d479" } } }`, @@ -134,9 +137,10 @@ func TestAlloyConfig(t *testing.T) { c.RemoteWriteConfigs[0].AzureADConfig = &azuread.AzureADConfig{ Cloud: "AzurePublic", ManagedIdentity: &azuread.ManagedIdentityConfig{ - ClientID: "00000000-0000-0000-0000-000000000000", + ClientID: "f47ac10b-58cc-0372-8567-0e02b2c3d479", }, } + c.RemoteWriteConfigs[0].ProtobufMessage = config.RemoteWriteProtoMsgV1 }), }, { @@ -148,7 +152,7 @@ func TestAlloyConfig(t *testing.T) { azuread { cloud = "AzureChina" managed_identity { - client_id = "00000000-0000-0000-0000-000000000000" + client_id = "f47ac10b-58cc-0372-8567-0e02b2c3d479" } } }`, @@ -156,9 +160,10 @@ func TestAlloyConfig(t *testing.T) { c.RemoteWriteConfigs[0].AzureADConfig = &azuread.AzureADConfig{ Cloud: "AzureChina", ManagedIdentity: &azuread.ManagedIdentityConfig{ - ClientID: "00000000-0000-0000-0000-000000000000", + ClientID: "f47ac10b-58cc-0372-8567-0e02b2c3d479", }, } + c.RemoteWriteConfigs[0].ProtobufMessage = config.RemoteWriteProtoMsgV1 }), }, { @@ -171,6 +176,7 @@ func TestAlloyConfig(t *testing.T) { }`, expectedCfg: expectedCfg(func(c *config.Config) { c.RemoteWriteConfigs[0].SigV4Config = &sigv4.SigV4Config{} + c.RemoteWriteConfigs[0].ProtobufMessage = config.RemoteWriteProtoMsgV1 }), }, { @@ -195,6 +201,7 @@ func TestAlloyConfig(t *testing.T) { Profile: "example_profile", RoleARN: "example_role_arn", } + c.RemoteWriteConfigs[0].ProtobufMessage = config.RemoteWriteProtoMsgV1 }), }, { @@ -235,7 +242,7 @@ func TestAlloyConfig(t *testing.T) { } } }`, - errorMsg: "the provided Azure Managed Identity client_id provided is invalid", + errorMsg: "the provided Azure Managed Identity client_id is invalid", }, { // Make sure the squashed HTTPClientConfig Validate function is being utilized correctly diff --git a/internal/component/prometheus/scrape/scrape.go b/internal/component/prometheus/scrape/scrape.go index ce7241c502..665c45ca32 100644 --- a/internal/component/prometheus/scrape/scrape.go +++ b/internal/component/prometheus/scrape/scrape.go @@ -69,6 +69,8 @@ type Arguments struct { Params url.Values `alloy:"params,attr,optional"` // Whether to scrape a classic histogram that is also exposed as a native histogram. ScrapeClassicHistograms bool `alloy:"scrape_classic_histograms,attr,optional"` + // Whether to scrape native histograms. + ScrapeNativeHistograms bool `alloy:"scrape_native_histograms,attr,optional"` // How frequently to scrape the targets of this scrape config. ScrapeInterval time.Duration `alloy:"scrape_interval,attr,optional"` // The timeout for scraping targets of this config. @@ -126,6 +128,7 @@ func (arg *Arguments) SetToDefault() { ScrapeInterval: 1 * time.Minute, // From config.DefaultGlobalConfig ScrapeTimeout: 10 * time.Second, // From config.DefaultGlobalConfig ScrapeProtocols: slices.Clone(defaultScrapeProtocols), + ScrapeNativeHistograms: true, } } @@ -220,6 +223,7 @@ func New(o component.Options, args Arguments) (*Component, error) { HTTPClientOptions: []config_util.HTTPClientOption{ config_util.WithDialContextFunc(httpData.DialFunc), }, + EnableNativeHistogramsIngestion: args.ScrapeNativeHistograms, } unregisterer := util.WrapWithUnregisterer(o.Registerer) diff --git a/internal/converter/internal/prometheusconvert/component/docker.go b/internal/converter/internal/prometheusconvert/component/docker.go index 2fb0be2894..fcffa3937b 100644 --- a/internal/converter/internal/prometheusconvert/component/docker.go +++ b/internal/converter/internal/prometheusconvert/component/docker.go @@ -35,6 +35,7 @@ func toDiscoveryDocker(sdConfig *prom_moby.DockerSDConfig) *docker.Arguments { RefreshInterval: time.Duration(sdConfig.RefreshInterval), Filters: toDockerFilters(sdConfig.Filters), HTTPClientConfig: *common.ToHttpClientConfig(&sdConfig.HTTPClientConfig), + MatchFirstNetwork: sdConfig.MatchFirstNetwork, } } diff --git a/internal/converter/internal/prometheusconvert/component/linode.go b/internal/converter/internal/prometheusconvert/component/linode.go index 074d058e70..e5315a3ebb 100644 --- a/internal/converter/internal/prometheusconvert/component/linode.go +++ b/internal/converter/internal/prometheusconvert/component/linode.go @@ -32,6 +32,7 @@ func toDiscoveryLinode(sdConfig *prom_linode.SDConfig) *linode.Arguments { RefreshInterval: time.Duration(sdConfig.RefreshInterval), Port: sdConfig.Port, TagSeparator: sdConfig.TagSeparator, + Region: sdConfig.Region, HTTPClientConfig: *common.ToHttpClientConfig(&sdConfig.HTTPClientConfig), } } diff --git a/internal/converter/internal/prometheusconvert/component/remote_write.go b/internal/converter/internal/prometheusconvert/component/remote_write.go index ca634423cd..7f1bfbca01 100644 --- a/internal/converter/internal/prometheusconvert/component/remote_write.go +++ b/internal/converter/internal/prometheusconvert/component/remote_write.go @@ -129,10 +129,29 @@ func toAzureAD(azureADConfig *azuread.AzureADConfig) *remotewrite.AzureADConfig return nil } - return &remotewrite.AzureADConfig{ + res := &remotewrite.AzureADConfig{ Cloud: azureADConfig.Cloud, - ManagedIdentity: remotewrite.ManagedIdentityConfig{ + } + + if azureADConfig.ManagedIdentity != nil { + res.ManagedIdentity = &remotewrite.ManagedIdentityConfig{ ClientID: azureADConfig.ManagedIdentity.ClientID, - }, + } + } + + if azureADConfig.OAuth != nil { + res.OAuth = &remotewrite.OAuthConfig{ + ClientID: azureADConfig.OAuth.ClientID, + ClientSecret: alloytypes.Secret(azureADConfig.OAuth.ClientSecret), + TenantID: azureADConfig.OAuth.TenantID, + } } + + if azureADConfig.SDK != nil { + res.SDK = &remotewrite.SDKConfig{ + TenantID: azureADConfig.SDK.TenantID, + } + } + + return res } diff --git a/internal/converter/internal/prometheusconvert/component/scrape.go b/internal/converter/internal/prometheusconvert/component/scrape.go index 1291116ae8..13022f5774 100644 --- a/internal/converter/internal/prometheusconvert/component/scrape.go +++ b/internal/converter/internal/prometheusconvert/component/scrape.go @@ -56,6 +56,7 @@ func toScrapeArguments(scrapeConfig *prom_config.ScrapeConfig, forwardTo []stora TrackTimestampsStaleness: scrapeConfig.TrackTimestampsStaleness, Params: scrapeConfig.Params, ScrapeClassicHistograms: scrapeConfig.ScrapeClassicHistograms, + ScrapeNativeHistograms: true, ScrapeInterval: time.Duration(scrapeConfig.ScrapeInterval), ScrapeTimeout: time.Duration(scrapeConfig.ScrapeTimeout), ScrapeProtocols: convertScrapeProtocols(scrapeConfig.ScrapeProtocols), diff --git a/internal/converter/internal/promtailconvert/internal/build/docker_sd.go b/internal/converter/internal/promtailconvert/internal/build/docker_sd.go index 60b4976842..72843e1cff 100644 --- a/internal/converter/internal/promtailconvert/internal/build/docker_sd.go +++ b/internal/converter/internal/promtailconvert/internal/build/docker_sd.go @@ -75,6 +75,7 @@ func toDiscoveryDocker(sdConfig *moby.DockerSDConfig) *docker.Arguments { RefreshInterval: time.Duration(sdConfig.RefreshInterval), Filters: toAlloyDockerSDFilters(sdConfig.Filters), HTTPClientConfig: *common.ToHttpClientConfig(&sdConfig.HTTPClientConfig), + MatchFirstNetwork: sdConfig.MatchFirstNetwork, } } diff --git a/internal/converter/internal/staticconvert/testdata-v2/integrations_v2.alloy b/internal/converter/internal/staticconvert/testdata-v2/integrations_v2.alloy index 671533e150..f76af6a136 100644 --- a/internal/converter/internal/staticconvert/testdata-v2/integrations_v2.alloy +++ b/internal/converter/internal/staticconvert/testdata-v2/integrations_v2.alloy @@ -1,6 +1,6 @@ prometheus.remote_write "metrics_default" { endpoint { - name = "default-149bbd" + name = "default-c3a75f" url = "http://localhost:9009/api/prom/push" queue_config { } diff --git a/internal/converter/internal/staticconvert/testdata-v2/unsupported.alloy b/internal/converter/internal/staticconvert/testdata-v2/unsupported.alloy index b7b1bf1dc7..22eacd8326 100644 --- a/internal/converter/internal/staticconvert/testdata-v2/unsupported.alloy +++ b/internal/converter/internal/staticconvert/testdata-v2/unsupported.alloy @@ -1,6 +1,6 @@ prometheus.remote_write "metrics_default" { endpoint { - name = "default-149bbd" + name = "default-c3a75f" url = "http://localhost:9009/api/prom/push" queue_config { } diff --git a/internal/converter/internal/staticconvert/testdata/prom_remote_write.alloy b/internal/converter/internal/staticconvert/testdata/prom_remote_write.alloy index 2d341fed6a..583a9d1cbc 100644 --- a/internal/converter/internal/staticconvert/testdata/prom_remote_write.alloy +++ b/internal/converter/internal/staticconvert/testdata/prom_remote_write.alloy @@ -1,6 +1,6 @@ prometheus.remote_write "metrics_test1" { endpoint { - name = "test1-149bbd" + name = "test1-c3a75f" url = "http://localhost:9009/api/prom/push" queue_config { } @@ -11,7 +11,7 @@ prometheus.remote_write "metrics_test1" { prometheus.remote_write "metrics_test2" { endpoint { - name = "test2-c6d55a" + name = "test2-1525fa" url = "http://localhost:9010/api/prom/push" send_exemplars = false @@ -23,7 +23,7 @@ prometheus.remote_write "metrics_test2" { prometheus.remote_write "metrics_test3" { endpoint { - name = "test3-aa96fd" + name = "test3-c4d4ae" url = "http://localhost:9011/api/prom/push" queue_config { } @@ -32,7 +32,7 @@ prometheus.remote_write "metrics_test3" { } endpoint { - name = "test3-a93240" + name = "test3-51df17" url = "http://localhost:9012/api/prom/push" queue_config { @@ -45,7 +45,7 @@ prometheus.remote_write "metrics_test3" { prometheus.remote_write "metrics_test4_sigv4_defaults" { endpoint { - name = "test4_sigv4_defaults-f815bf" + name = "test4_sigv4_defaults-b0b080" url = "http://localhost:9012/api/prom/push" queue_config { } @@ -58,7 +58,7 @@ prometheus.remote_write "metrics_test4_sigv4_defaults" { prometheus.remote_write "metrics_test5_sigv4_explicit" { endpoint { - name = "test5_sigv4_explicit-bc8fca" + name = "test5_sigv4_explicit-51a6e5" url = "http://localhost:9012/api/prom/push" queue_config { } @@ -77,7 +77,7 @@ prometheus.remote_write "metrics_test5_sigv4_explicit" { prometheus.remote_write "metrics_test6_azuread_defaults" { endpoint { - name = "test6_azuread_defaults-cc4e7e" + name = "test6_azuread_defaults-07927e" url = "http://localhost:9012/api/prom/push" queue_config { } @@ -94,7 +94,7 @@ prometheus.remote_write "metrics_test6_azuread_defaults" { prometheus.remote_write "metrics_test7_azuread_explicit" { endpoint { - name = "test7_azuread_explicit-9e1a3e" + name = "test7_azuread_explicit-8b8570" url = "http://localhost:9012/api/prom/push" queue_config { } diff --git a/internal/converter/internal/staticconvert/testdata/prom_scrape.alloy b/internal/converter/internal/staticconvert/testdata/prom_scrape.alloy index 625ef1b76a..c93003da84 100644 --- a/internal/converter/internal/staticconvert/testdata/prom_scrape.alloy +++ b/internal/converter/internal/staticconvert/testdata/prom_scrape.alloy @@ -91,7 +91,7 @@ prometheus.relabel "metrics_agent_promobee" { prometheus.remote_write "metrics_agent" { endpoint { - name = "agent-36127e" + name = "agent-b8fb76" url = "https://prometheus-us-central1.grafana.net/api/prom/push" basic_auth { diff --git a/internal/converter/internal/staticconvert/testdata/sanitize.alloy b/internal/converter/internal/staticconvert/testdata/sanitize.alloy index 193657f9a2..5a30d22d03 100644 --- a/internal/converter/internal/staticconvert/testdata/sanitize.alloy +++ b/internal/converter/internal/staticconvert/testdata/sanitize.alloy @@ -1,6 +1,6 @@ prometheus.remote_write "metrics_integrations" { endpoint { - name = "integrations-ce3432" + name = "integrations-0031a8" url = "https://region.grafana.net/api/prom/push" basic_auth { diff --git a/internal/converter/internal/staticconvert/testdata/traces.alloy b/internal/converter/internal/staticconvert/testdata/traces.alloy index 5bfde72dad..45d3770d0b 100644 --- a/internal/converter/internal/staticconvert/testdata/traces.alloy +++ b/internal/converter/internal/staticconvert/testdata/traces.alloy @@ -1,6 +1,6 @@ prometheus.remote_write "metrics_remote_write_name" { endpoint { - name = "remote_write_name-149bbd" + name = "remote_write_name-c3a75f" url = "http://localhost:9009/api/prom/push" queue_config { } diff --git a/internal/converter/internal/staticconvert/testdata/unsupported.alloy b/internal/converter/internal/staticconvert/testdata/unsupported.alloy index b4da0fac4c..b8531479a9 100644 --- a/internal/converter/internal/staticconvert/testdata/unsupported.alloy +++ b/internal/converter/internal/staticconvert/testdata/unsupported.alloy @@ -8,7 +8,7 @@ prometheus.scrape "metrics_agent_prometheus" { prometheus.remote_write "metrics_agent" { endpoint { - name = "agent-eea444" + name = "agent-6489d6" url = "https://prometheus-us-central1.grafana.net/api/prom/push" queue_config { } @@ -41,7 +41,7 @@ prometheus.scrape "integrations_statsd_exporter" { prometheus.remote_write "integrations" { endpoint { - name = "agent-eea444" + name = "agent-6489d6" url = "https://prometheus-us-central1.grafana.net/api/prom/push" queue_config { } diff --git a/internal/converter/internal/staticconvert/testdata_linux/promtail_prom.alloy b/internal/converter/internal/staticconvert/testdata_linux/promtail_prom.alloy index c8dacb9d9a..74099a6ba4 100644 --- a/internal/converter/internal/staticconvert/testdata_linux/promtail_prom.alloy +++ b/internal/converter/internal/staticconvert/testdata_linux/promtail_prom.alloy @@ -18,7 +18,7 @@ prometheus.scrape "metrics_name_jobName" { prometheus.remote_write "metrics_name" { endpoint { - name = "name-149bbd" + name = "name-c3a75f" url = "http://localhost:9009/api/prom/push" queue_config { } diff --git a/internal/converter/internal/staticconvert/testdata_windows/promtail_prom.alloy b/internal/converter/internal/staticconvert/testdata_windows/promtail_prom.alloy index 97dba012bb..632327c084 100644 --- a/internal/converter/internal/staticconvert/testdata_windows/promtail_prom.alloy +++ b/internal/converter/internal/staticconvert/testdata_windows/promtail_prom.alloy @@ -18,7 +18,7 @@ prometheus.scrape "metrics_name_jobName" { prometheus.remote_write "metrics_name" { endpoint { - name = "name-149bbd" + name = "name-c3a75f" url = "http://localhost:9009/api/prom/push" queue_config { } diff --git a/internal/static/metrics/instance/marshal_test.go b/internal/static/metrics/instance/marshal_test.go index 31e30d5e84..cda61a01de 100644 --- a/internal/static/metrics/instance/marshal_test.go +++ b/internal/static/metrics/instance/marshal_test.go @@ -48,6 +48,7 @@ scrape_configs: password: foobar remote_write: - url: http://admin:verysecret@localhost:9009/api/prom/push + protobuf_message: prometheus.WriteRequest remote_timeout: 30s name: test-d0f32c send_exemplars: true @@ -106,6 +107,7 @@ scrape_configs: password: SCRUBME remote_write: - url: http://username:SCRUBURL@localhost:9009/api/prom/push + protobuf_message: prometheus.WriteRequest remote_timeout: 30s name: test-d0f32c send_exemplars: true diff --git a/internal/static/metrics/wal/util.go b/internal/static/metrics/wal/util.go index 10312fde45..8576b45297 100644 --- a/internal/static/metrics/wal/util.go +++ b/internal/static/metrics/wal/util.go @@ -146,6 +146,8 @@ func (c *walDataCollector) SeriesReset(_ int) {} func (*walDataCollector) UpdateSeriesSegment([]record.RefSeries, int) {} +func (c *walDataCollector) StoreMetadata([]record.RefMetadata) {} + // SubDirectory returns the subdirectory within a Storage directory used for // the Prometheus WAL. func SubDirectory(base string) string {