Releases: cloudprober/cloudprober
Pre-release binaries
- This pre-release is built from the latest source code. Whenever a new change is pushed to the master, this release gets updated.
- Docker equivalent of this release will be the "main" or "master" tag.
docker run ghcr.io/cloudprober/cloudprober:main or docker run cloudprober/cloudprober:main
v0.13.7 - FIPS, improved include support and consistency fixes
User visible changes
- [fips] Availability of fips compliant docker image. #794.
- [config] Support file glob when including config files by @rhodesn in #827
- [logger] Provide an option to set minimum log level by @manugarg in #799
- [probes.external] Make substitution labels consistent with additional labels by @manugarg in #810
Other fixes and improvements
- [probes.grpc] Transition gRPC to using common/sched by @manugarg in #823
- [probes.dns] Use the common sched package for scheduling. by @manugarg in #800
- [probes.dns] Use context for DNS calls. by @manugarg in #802
- [probes.grpc] Fix connection retry interval by @manugarg in #815
- [targets.k8s] Fix regex for regex based filters. by @manugarg in #816
- [sysvars] Fix spurious logging in sysvars. #807, #808
- [options] Change how LogMetrics is implemented. by @manugarg in #818
- [metrics] Don't clone eventmetrics unnecessarily by @manugarg in #820
- [validators] While running validators, allow skipping failures map update by @manugarg in #828
- [probes.dns] Don't reset latency on each run by @manugarg in #834
Docs updates
- [docs] Improve installation instructions by @manugarg in #785
- [docs] Update homepage and github homepage image: #787, #789, #821
- [docs] Mention extensibility and a tagline about cloudprober. by @manugarg in #791
New Contributors
- @dependabot made their first contribution in #795
- @rhodesn made their first contribution in #827
- @otkd made their first contribution in #832
Full Changelog: v0.13.6...v0.13.7
v0.13.6
What's Changed
Targets improvements
- [targets.resolver] Make cloudprober's resolver more reliable. Note this resolver gets triggered only
if you configureresolve_first
in your probe. - [targets.resolve] Provide a way to specify network for DNS server override. This will allow users to
use DNS servers over TCP, which may be critical in enterprise/firewall setting where UDP is sometimes
restricted. by @manugarg in #756 - [targets.file] Support YAML format for target files and allow specifying URLs in resources. This will
make specifying targets through files even more convenient. by @manugarg in #777, #778
Surfacers improvements
- [surfacers] Ignore sysvars metrics for file surfacer added by default. This is to reduce noise in default
logs. by @manugarg in #749. - [config] Provide a way to specify surfacers config independently. This will allow multi-tenant
deployments to configure surfacers centrally. by @manugarg in #750. - [surfacers] Provide a way to add labels to all metrics through environment variables. by @manugarg
in #759.
HTTP Probe
- [probes.http] Provide a way to read request body from a file. by @manugarg in #782
- [probes.http] Allow specifying proxy connect headers by @manugarg in #763
Bug fixes
- [file.gcs] Fix a bug (introduced in the last release v0.13.5) in accessing GCS files. by @allagoichuk in #783
- [probes.serverutils] Use context in ServeContext. by @stvnrhodes in #781
Documentation
- [homepage] Update homepage. by @manugarg in #772
- [surfacers.doc] Update additional labels documentation. by @manugarg in #761
- [docs] Fix the link on the additional labels page. by @manugarg in #765
- [docs] Docs navigation improvements: by @manugarg in #769
Build maintenance
- [build] Move cloudprober binary to more appropriate location by @manugarg in #754
- [web] Move web initialization to cloudprober init. by @manugarg in #758
- [config] Stop generating cuelang schema files by @manugarg in #767
- [build] Update protoc-gen-go and protobuf generated code. by @manugarg in #762, #776
New Contributors
- @stvnrhodes made their first contribution in #781
- @allagoichuk made their first contribution in #783
Full Changelog: v0.13.5...v0.13.6
v0.13.5 Couple of bug fixes and support for reading files from cloud
What's Changed
- [cloudprober] Add support for reading files from S3 and GCS. by @manugarg in #396
- [surfacer.postgres] Switch to newer pgx postgres driver by @manugarg in #305
- [validators] Public validators package by @manugarg in #747
- [probes.grpc] Run validators only if probe succeeded. by @manugarg in #737
Bug fixes
- [probes.external] Fix a bug in serverutils (#748). If you run an external probe in server mode, and your external probe binary uses
serverutils
Go library, you may be impacted by this bug. This was bug was introduced in the last version (v0.13.4
) during refactoring for more tests coverage. - [probes.external] Fix logical race condition in external server probe handling by @apolcyn in #744
Other changes
- [targets.example] Add targets extensions example. by @manugarg in #742
- [probes.external] Fix sporadic pipe read error logs. by @manugarg in #739
Full Changelog: v0.13.4...v0.13.5
v0.13.4 - Improved gRPC and external probes, HTTP latency breakdown and more
New Features / Enhancements
-
Latency Breakdown for HTTP Probes
Provide a way to report latency breakdown for HTTP probes (#699). -
gRPC Probe Enhancements
- Wait for successful connection before sending the request (#726, #729). By default gRPC's DialContext returns immediately even for the non-retryable errors. This mechanism doesn't work very well for probing -- there is no error message to show problems with the connection and connection is in the TRANSIENT_FAILURE state. We now use grpcurl's BlockingDial which takes care of these issues.
- Use client TLS by default for encryption. (#727)
- Capture request error messages better. (#731)
-
Streaming Metrics for external probes
Parse and export external probes' metrics as soon as they are available. (#708, #712, #713, #715, #716, #722)
This feature enables use cases where external probe runs less frequently (say 1 every 60s) but runs many tasks (for performance measurement, e.g.) and export results many times (say every 5s) within that interval. See discussion in #691 and #689 for more background. -
Bulk writes in postgres surfacer
Batch postgres surfacer writes to improve peformance (#717). -
Allow DNS Overrides
Allow overriding DNS server (#707).
Other Changes
- Add a command line flag to control prometheus metrics prefix:
--prometheus_metrics_prefix
(#732). - Fix ostgres surfacer metric filter (#711).
- [prober.saveconfig] Write probe configs to disk in order (#721).
- [tls] Reload server certificates as well (#719).
- [build.tools] Fix where python proto stub is copied to (#700).
- [build] Update net dependency for sec alert (#728).
- [build] Update protobuf package to fix security alert (#714).
Contributors
- @manugarg
- @markoposavec made their first contribution in #711. Thank you and welcome to the community!
- @sfc-gh-raram made their first contribution in #707. Thank you and welcome to the community!
Full Changelog: v0.13.3...v0.13.4
v0.13.3 - Probe scheduling, DNS probing improvements, jsonnet configs, dynamic config persistence and more
What's Changed
- Probe scheduling capability:
- External probe server:
- DNS Probe Improvements:
- Dynamic config: Provide a mechanism to save config to disk on dynamic change. If you program probes dynamically using gRPC interface for example, you can configure cloudprober such that it will reload the config on restart (see #645 for more background). (#671)
- Jsonnet configs support. You can now write Cloudprober configs in textpb (protobuf text), YAML, JSON, and Jsonnet (#687)
- [surfacers.otel] Additional resource attribute support. (#664)
- [tls] Fix client cert handling when cert reloading is enabled. (#697)
- [logs] Redirect container logs to journald. (#682)
- [website.homepage] Add a diagram to Cloudprober homepage. (#674)
- [servers.http] Fix /healthcheck when lameduck lister is not initialized. (#684)
Contributors: @manugarg, @cbroglie, @aitorpazos, @ls692, @AdamEAnderson
New Contributors
- @AdamEAnderson made their first contribution in #666
- @aitorpazos made their first contribution in #681
Full Changelog: v0.13.2...v0.13.3
v0.13.2 OpenTelemetry surfacer and composable config files
What's Changed
- [config] Make cloudprober configs composable. You can now include other configs within a cloudprober config. This will make multi-team config management easier (yay!! 🎉) . #643 (Note this doesn't work for YAML configs yet)
- Cloudprober helm chart also supports specifying additional configs now.
- [surfacers] Add OpenTelemetry surfacer. OpenTelemetry is becoming very popular and almost all metrics systems support it. Adding this surfacer increases Cloudprober's integration capabilities multifold. There may still be some rough edges but give it try. #642
- [surfacers] "failure" metric for all. Now all surfacers, except FILE and PUBSUB, export "failure" metric by default. You can still disable it if you want. #648
- [surfacers] Filtering metrics by name works for all surfacers now except FILE and PUBSUB. #648
- [probes.ping] Take a small pause between pushing packets to avoid overwhelming the network buffers by @jumpojoy in #634
- [docs] Documentation enhancements. #627 #650
- [build] Fix Dockerfile.dev by @jumpojoy in #632
Breaking Change
- [targets] Rename targets.endpoints to targets.endpoint (#646). With this change
targets { endpoints {} }
config fields will result an error. Sorry for the breaking change, but since these fields were introduced only in the last release (v0.13.1), impact should be minimal.
Security Update
New Contributors
Full Changelog: v0.13.1...v0.13.2
v0.13.1 - Opsgenie integration, alerting enhancements and other changes
Alerting Enhancements
- Opsgenie integration 🎉 #570
- Add a generic HTTP notifier. This can be used for pretty much anything. #599
- Resolve alerts automatically wherever possible. #556, #558, #580, #561.
- Use alert name and target to deduplicate alerts instead of condition start timestamp: #583
- Add severity to alerts. #569
- Add target IP to available alert fields. #548
- Improve documentation. #573, #549, #552, #585
Other Changes (consistency, logs verbosity, documentation, etc)
- [probes] Make DNS resolve errors behavior more consistent: #616, #619, #620
- Provide a way to specify detailed targets configuration in the config directly. This will simplify configuration quite significantly. #606
- [targets] Make targets optional for certain probes. #614
- [probes] Return an error if interval is smaller than timeout. #560
- Reduce logs verbosity: #555, #562, #563
- [docs.targets] Improve targets documentation. #617
- [config] Streamline config usage and loading: #622
- [probes.http] Support for new Cloudprober internal scheme, host and path labels. #607, #608
- [website] Fix company list fonts on the homepage. #612
Build and testing
- [build] Move a bunch of packages to internal #589, #590, #591, #592
- [build] Test example configs during build. #543
- [probes.test] Add tests to verify that empty configs work. #544
- [cleanup] Cleanup usage of deprecated packages: #603, #604, #605
- [probes.grpc] Disable connect failures test for macos. #579
- [examples] Fix myprober example and simplify it. #568
- [build] Don't fail fast. Run as many tests as possible. #574
- [build] Run certain actions only in the main repository. #621
Bug fixes
- [config] Fix bug in envSecret handling. #546
- [config] Fix a bug in the /config-running disabling functiionality. #554
Security updates
- [security] Upgrade gRPC package to fix the security issue. #602
- [build] Update some depdendencies to fix security alerts. #577
Full Changelog: v0.13.0...v0.13.1
v0.13.0 - Alerts dashboard, alerting support for all probes, more config template functions, config documentation navigation
Enhancements
- [config] Much expanded config template functions (functions documentation). Use sprig's functions for config template by @manugarg in #524
- [alerting] Add alerts dashboard at /alerts. It will show currently firing alerts and some historical alerts. by @manugarg in #530
- [alerting] Add alerting to all probe types. by @manugarg in #533 & #532
- [config] Provide a way to hide secret environment variables. You can use 'envSecret' instead of 'env' macro to make sure environment variable doesn't show on the expanded config (/config-running) page. by @manugarg in #536
- [validators.http] Add last-modified header validation by @robpickerill in #493
- [gcp] Add an option to override GCP API endpoint for resource discovery and logging. by @shellyvilenko in #525 & #537
Bug fixes
- [bugfix] Fix a bug wherein HTTP probe will not consider a target as new if only its IP address changes. To fix that behavior, include target's IP in the target key. (#535) by @ls692 in #538
Documentation
- [docs] Rename /config root file to _index.md by @manugarg in #497
- [docs] Update protobuf documentation. by @manugarg in #499
- [docs.alerting] Add first draft alerting documentation. by @manugarg in #501
- [docs.config] Add ToC to the config documentation pages. by @manugarg in #503
- [docs] Add config documentation for the postgres surfacer. by @manugarg in #512
- [docs] Change default config language to textpb. by @manugarg in #516
- [docs] Fix anchor links handling. by @manugarg in #518
- [docs] Fix one more quirk of Firefox. by @manugarg in #521
- [surfacers.doc] Fix surfacers documentation links. by @manugarg in #526
Full Changelog: v0.12.9...v0.13.0
v0.12.9 - YAML configs, structured logging, improved gRPC probe, more alerting targets, and much more
Enhancements
- YAML Configs Cloudprober now supports YAML configs. We've been trying to do this for a while. It's finally here. (by @manugarg in #464)
- Configuration documentation We finally have fully auto-generated configuration documentation for Cloudprober. (by @manugarg in #486, announcement).
- Arbitrary gRPC requests in the gRPC probe. (by @manugarg in #470)
- Structured, JSON logs Cloudprober emits more machine friendly logs now using the new Go structured logger - log/slog. (by @manugarg in #462)
- Reloadable TLS certs to allow TLS certs rotation without restarting Cloudprober. (by @manugarg in #428)
- PagerDuty and Slack notifications support. (by @robpickerill in #445, #475)
- Cloudprober's journey through an About page: https://cloudprober.org/docs/about/. (by @manugarg in #439)
- Smaller binary size Reduce binary size by 25% by disabling gRPC XDS support by default. (by @manugarg in #467)
- Health handler (/health) to serve as the k8s readiness and liveness probes endpoint. (by @manugarg in #435)
- stringSplit config macro. (by @xenbyte in #476)
Bug fixes
- [metrics] Clone latency and other similar metrics. (by @manugarg in #437)
- [metrics] In prometheus metrics metadata string, add a space after #. (by @aymeric-ledizes in #471)
Internal
- [metrics.Map] Use generics to implement Map. #444
- [metrics.latency] Add a new value type LatencyValue. #448
- [metrics] Remove (now) unnecessary metric size check. #447
- [config] Refactor config.go to kill unnecessary functions. #461
- [alerting.email] Change config and add more tests. #472
- [logger] Trim base paths from file and function names #474
- [probestatus] Show debug info only if 'debug' parameter is set. #478
Build and Testing
- Add flags to generate test reports. #432
- [build] Run Sonar scanner explicitly. #433
- [build] Run sonar scanner only for local PRs. #436
- [surfacer.cw] Add tests for map values. #446
- [surfacers.sd] Add more tests for stackdriver surfacer. #449
- [docs] Add K8s targets page. #452
- [website] Some style changes and small fixes. #454, #456
- [build] Prevent import of surfacers code outside of surfacers package. #477
- [probestatus] Add a minimal test for probestatus template rendering. #479
- Exclude cmd files from coverage analysis. #480
- [docs] Make sidebar menu better. #483
New Contributors
- @aymeric-ledizes made their first contribution in #471
- @xenbyte made their first contribution in #476
Full Changelog: v0.12.8...v0.12.9