Skip to content
This repository has been archived by the owner on Nov 5, 2021. It is now read-only.

v0.10.9: Enhancements and bug fixes

Compare
Choose a tag to compare
@manugarg manugarg released this 07 Aug 20:08
· 156 commits to master since this release

File based targets discovery.

Targets can be provided through a file (file can be on GCS as well), in text or json format corresponding to the RDS Resource protobuf (#394).

Kubernetes targets discovery improvements

  • Support for filterting endpoints by port (#370).
  • Make discovered service's port available to probes that use ports (e.g. HTTP) (#420).
  • Provide a way to specify per-target HTTP host header through a target label ("fqdn"). Having a service be accessible only with host header service.namespace.cluster.local is common in Kubernetes and Istio. With this option you can attach the "fqdn" label to the service and cloudprober HTTP probes will do the right thing (#438).
  • Fix service discovery support for AWS ELB (#418).

Miscellaneous

  • For keep_alive HTTP probes, keep track of and report number of connections done, through a metric called "connect_event" (#421).
  • Handle external probe process termination more gracefully (#413).
  • Provide a flag (--cloud_metadata=auto|ec2|gce|none) to control cloud-specific initialization to improve cloudprober start-up time (#417).

Bug Fixes

This releases fixes a couple of uncommon bugs:

  • If kubernetes resources have same names across namespaces, it would cause cloudprober to have duplicate resources (#437), and duplicate resources can cause probe data to get mangled (#436). We track kubernetes resources by both, name and namespace, now (#440) and make sure that targets discovery client doesn't return duplicate resources (#439).

  • Fix a bug where running configtest on GCE VM panics (#441).

Backward incompatible changes

We are changing how you access resource labels in cloudprober configs:

  • Make GCE instance labels available to configs as label_<label-name> instead of labels_<label-name>. For example, in configs, you can use {{.label_app}} to refer to the instance's "app" label.
  • To add additional labels (example) dynamically, based on targets, enclose them within @. For example, to add a label based on target's app label, use @target.label.app@.

These are not widely advertised or used features, so we expect the impact to be minimum.

See v0.10.7...v0.10.9 for the complete list of commits since the last release.