-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add net-exporter-1.21.0-422ccad8d44240d96c1b910ed6799bdd29951f3f.tgz
net-exporter-1.21.0-422ccad8d44240d96c1b910ed6799bdd29951f3f.tgz-meta/README.md net-exporter-1.21.0-422ccad8d44240d96c1b910ed6799bdd29951f3f.tgz-meta/main.yaml net-exporter-1.21.0-422ccad8d44240d96c1b910ed6799bdd29951f3f.tgz-meta/values.schema.json
- Loading branch information
1 parent
e146cb2
commit 1dc4d46
Showing
5 changed files
with
357 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
100 changes: 100 additions & 0 deletions
100
net-exporter-1.21.0-422ccad8d44240d96c1b910ed6799bdd29951f3f.tgz-meta/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
[![CircleCI](https://dl.circleci.com/status-badge/img/gh/giantswarm/net-exporter/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/giantswarm/net-exporter/tree/main) | ||
[![Go Report Card](https://goreportcard.com/badge/github.com/giantswarm/net-exporter)](https://goreportcard.com/report/github.com/giantswarm/net-exporter) | ||
|
||
# net-exporter | ||
|
||
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. | ||
|
||
## How to build | ||
|
||
Build it using the standard `go build` command. | ||
|
||
```bash | ||
go build github.com/giantswarm/net-exporter | ||
``` | ||
|
||
## Deployment | ||
|
||
* Managed by [app-operator]. | ||
* Production releases are stored in the [default-catalog]. | ||
* WIP releases are stored in the [default-test-catalog]. | ||
|
||
## Installing the Chart | ||
|
||
To install the chart locally: | ||
|
||
```bash | ||
$ git clone https://github.com/giantswarm/net-exporter.git | ||
$ cd net-exporter | ||
$ helm install helm/net-exporter | ||
``` | ||
|
||
Provide a custom `values.yaml`: | ||
|
||
```bash | ||
$ helm install net-exporter -f values.yaml | ||
``` | ||
|
||
## Changes to Charts | ||
|
||
At the current stage under [helm](./helm), there are two charts. The [net-exporter](./helm/net-exporter) is pushed to the App Catalog. The [net-exporter-chart](./helm/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. | ||
|
||
## Release Process | ||
|
||
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/ | ||
|
||
|
||
## Collectors | ||
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. | ||
|
||
## Metrics | ||
|
||
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). | ||
|
||
## Contact | ||
|
||
- Mailing list: [giantswarm](https://groups.google.com/forum/!forum/giantswarm) | ||
- IRC: #[giantswarm](irc://irc.freenode.org:6667/#giantswarm) on freenode.org | ||
- Bugs: [issues](https://github.com/giantswarm/net-exporter/issues) | ||
|
||
## Contributing & Reporting Bugs | ||
|
||
See [CONTRIBUTING](CONTRIBUTING.md) for details on submitting patches, the | ||
contribution workflow as well as reporting bugs. | ||
|
||
## License | ||
|
||
net-exporter is under the Apache 2.0 license. See the [LICENSE](LICENSE) file for | ||
details. |
12 changes: 12 additions & 0 deletions
12
net-exporter-1.21.0-422ccad8d44240d96c1b910ed6799bdd29951f3f.tgz-meta/main.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
annotations: | ||
application.giantswarm.io/metadata: https://giantswarm.github.io/default-test-catalog/net-exporter-1.21.0-422ccad8d44240d96c1b910ed6799bdd29951f3f.tgz-meta/main.yaml | ||
application.giantswarm.io/readme: https://giantswarm.github.io/default-test-catalog/net-exporter-1.21.0-422ccad8d44240d96c1b910ed6799bdd29951f3f.tgz-meta/README.md | ||
application.giantswarm.io/team: cabbage | ||
application.giantswarm.io/values-schema: https://giantswarm.github.io/default-test-catalog/net-exporter-1.21.0-422ccad8d44240d96c1b910ed6799bdd29951f3f.tgz-meta/values.schema.json | ||
config.giantswarm.io/version: 1.x.x | ||
chartApiVersion: v1 | ||
chartFile: net-exporter-1.21.0-422ccad8d44240d96c1b910ed6799bdd29951f3f.tgz | ||
dateCreated: '2025-01-13T10:47:19.565575Z' | ||
digest: b474733020e81af4e97fafb880681a0bf3d93b4c5aef802cdd9b9b525cb7864c | ||
home: https://github.com/giantswarm/net-exporter | ||
icon: https://s.giantswarm.io/app-icons/prometheus/1/light.svg |
227 changes: 227 additions & 0 deletions
227
net-exporter-1.21.0-422ccad8d44240d96c1b910ed6799bdd29951f3f.tgz-meta/values.schema.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,227 @@ | ||
{ | ||
"$schema": "http://json-schema.org/schema#", | ||
"type": "object", | ||
"properties": { | ||
"NetExporter": { | ||
"type": "object", | ||
"properties": { | ||
"DNSCheck": { | ||
"type": "object", | ||
"properties": { | ||
"TCP": { | ||
"type": "object", | ||
"properties": { | ||
"Disabled": { | ||
"type": "boolean" | ||
} | ||
} | ||
} | ||
} | ||
}, | ||
"Hosts": { | ||
"type": "string" | ||
}, | ||
"NTPServers": { | ||
"type": "string" | ||
} | ||
} | ||
}, | ||
"ciliumNetworkPolicy": { | ||
"type": "object", | ||
"properties": { | ||
"enabled": { | ||
"type": "boolean" | ||
} | ||
} | ||
}, | ||
"cluster": { | ||
"type": "object", | ||
"properties": { | ||
"kubernetes": { | ||
"type": "object", | ||
"properties": { | ||
"DNS": { | ||
"type": "object", | ||
"properties": { | ||
"IP": { | ||
"type": "string" | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
}, | ||
"controlPlaneSubnets": { | ||
"type": "array" | ||
}, | ||
"daemonset": { | ||
"type": "object", | ||
"properties": { | ||
"priorityClassName": { | ||
"type": "string" | ||
} | ||
} | ||
}, | ||
"dns": { | ||
"type": "object", | ||
"properties": { | ||
"label": { | ||
"type": "string" | ||
}, | ||
"namespace": { | ||
"type": "string" | ||
}, | ||
"port": { | ||
"type": "integer" | ||
}, | ||
"service": { | ||
"type": "string" | ||
} | ||
} | ||
}, | ||
"dnscache": { | ||
"type": "object", | ||
"properties": { | ||
"port": { | ||
"type": "integer" | ||
} | ||
} | ||
}, | ||
"global": { | ||
"type": "object", | ||
"properties": { | ||
"podSecurityStandards": { | ||
"type": "object", | ||
"properties": { | ||
"enforced": { | ||
"type": "boolean" | ||
} | ||
} | ||
} | ||
} | ||
}, | ||
"groupID": { | ||
"type": "integer" | ||
}, | ||
"image": { | ||
"type": "object", | ||
"properties": { | ||
"name": { | ||
"type": "string" | ||
}, | ||
"registry": { | ||
"type": "string" | ||
}, | ||
"tag": { | ||
"type": "string" | ||
} | ||
} | ||
}, | ||
"kubectl": { | ||
"type": "object", | ||
"properties": { | ||
"image": { | ||
"type": "object", | ||
"properties": { | ||
"name": { | ||
"type": "string" | ||
}, | ||
"registry": { | ||
"type": "string" | ||
}, | ||
"tag": { | ||
"type": "string" | ||
} | ||
} | ||
} | ||
} | ||
}, | ||
"name": { | ||
"type": "string" | ||
}, | ||
"podSecurityContext": { | ||
"type": "object" | ||
}, | ||
"port": { | ||
"type": "integer" | ||
}, | ||
"resources": { | ||
"type": "object", | ||
"properties": { | ||
"limits": { | ||
"type": "object", | ||
"properties": { | ||
"memory": { | ||
"type": "string" | ||
} | ||
} | ||
}, | ||
"requests": { | ||
"type": "object", | ||
"properties": { | ||
"cpu": { | ||
"type": "string" | ||
}, | ||
"memory": { | ||
"type": "string" | ||
} | ||
} | ||
} | ||
} | ||
}, | ||
"securityContext": { | ||
"type": "object" | ||
}, | ||
"serviceMonitor": { | ||
"type": "object", | ||
"properties": { | ||
"enabled": { | ||
"type": "boolean" | ||
}, | ||
"interval": { | ||
"type": "string" | ||
}, | ||
"scrapeTimeout": { | ||
"type": "string" | ||
} | ||
} | ||
}, | ||
"serviceType": { | ||
"type": "string" | ||
}, | ||
"timeout": { | ||
"type": "string" | ||
}, | ||
"userID": { | ||
"type": "integer" | ||
}, | ||
"verticalPodAutoscaler": { | ||
"type": "object", | ||
"properties": { | ||
"enabled": { | ||
"type": "boolean" | ||
}, | ||
"maxAllowed": { | ||
"type": "object", | ||
"properties": { | ||
"memory": { | ||
"type": "string" | ||
} | ||
} | ||
}, | ||
"minAllowed": { | ||
"type": "object", | ||
"properties": { | ||
"cpu": { | ||
"type": "string" | ||
}, | ||
"memory": { | ||
"type": "string" | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} |