net-exporter is a Prometheus exporter for exposing network information in Kubernetes clusters. It is packaged as a Helm chart.
net-exporter runs as a Kubernetes Daemonset. This is to allow for intra-pod network calls, to determine network latency.
Build it using the standard go build
command.
go build github.com/giantswarm/net-exporter
- Managed by [app-operator].
- Production releases are stored in the [default-catalog].
- WIP releases are stored in the [default-test-catalog].
To install the chart locally:
$ git clone https://github.com/giantswarm/net-exporter.git
$ cd net-exporter
$ helm install helm/net-exporter
Provide a custom values.yaml
:
$ helm install net-exporter -f values.yaml
At the current stage under helm, there are two charts. The net-exporter is pushed to the App Catalog. The net-exporter-chart is pushed to the Quay appr
repo.
It is important that they are kept in sync.
We have this differentiation in place because in our Control Planes, we don't use the app-operator to deploy.
Currently only members of the Giant Swarm organization can create releases for this project. For up to date steps, please refer to internal docs here: https://intranet.giantswarm.io/docs/dev-and-releng/how-to-release-a-project/
All Collectors are enabled by default.
Name | Description |
---|---|
dns | Exposes DNS latency statistics. Performs host lookups, exposing the time taken per host. |
network | Exposes network latency statistics. Performs dials to the other net-exporter Pods, exposing the time taken per host. |
Name | Description |
---|---|
dns_latency_seconds_bucket |
A Prometheus Histogram of DNS resolution latency. See also dns_latency_seconds_count and dns_latency_seconds_sum . |
dns_resolve_error_total |
The total number of errors encountered resolving DNS. |
dns_error_total |
The total number of internal errors encountered testing DNS resolution. |
network_latency_seconds_bucket |
A Prometheus Histogram of network latency. See also network_latency_seconds_count and network_latency_seconds_sum . |
network_dial_error_total |
The total number of errors encountered dialing other hosts. |
network_error_total |
The total number of internal errors encountered testing network latency. |
For example (some labels ommited for clarity):
dns_latency_seconds_bucket{instance="192.168.120.239:8000", host="kubernetes.default.svc.cluster.local", le="0.008"} | 7
Here, we expose the latency for the specific instance to resolve the dns host.
network_latency_seconds_bucket{instance="192.168.120.239:8000", host="192.168.120.239:8000", le="0.004"} | 28
Here, we expose the latency for the specific instance to resolve another instance (specifically, the net-exporter pod, labeled as host).
- Mailing list: giantswarm
- IRC: #giantswarm on freenode.org
- Bugs: issues
See CONTRIBUTING for details on submitting patches, the contribution workflow as well as reporting bugs.
net-exporter is under the Apache 2.0 license. See the LICENSE file for details.