Skip to content

Commit 6e0bbc8

Browse files
authored
feat: align metrics name with spec (#3)
1 parent 127c6f0 commit 6e0bbc8

18 files changed

+870
-73
lines changed

README.md

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,10 @@ receivers:
1515
1616
**Requires privileged execution**
1717
18-
## Metrics
18+
## Metrics && Attributes
1919
20-
```
21-
peer.usage.rx_bytes
22-
peer.usage.tx_bytes
23-
peer.last_handshake
24-
```
25-
26-
## Attributes
20+
See [metadata autogenerated file](./documentation.md).
2721
28-
```
29-
peer.device.name ## Interface name
30-
peer.name ## Peer's public key
31-
```
3222
3323
### Todo
3424

config.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package wireguardreceiver
33
import (
44
"errors"
55

6+
"github.com/rogercoll/wireguardreceiver/internal/metadata"
67
"go.opentelemetry.io/collector/component"
78
"go.opentelemetry.io/collector/receiver/scraperhelper"
89
)
@@ -13,6 +14,9 @@ type Config struct {
1314
scraperhelper.ScraperControllerSettings `mapstructure:",squash"`
1415
// TODO: implement exclude option
1516
Exclude ExcludeConfig `mapstructure:"exclude"`
17+
18+
// MetricsBuilderConfig config. Enable or disable stats by name.
19+
metadata.MetricsBuilderConfig `mapstructure:",squash"`
1620
}
1721

1822
type ExcludeConfig struct {

documentation.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
[comment]: <> (Code generated by mdatagen. DO NOT EDIT.)
2+
3+
# wireguard_stats
4+
5+
## Default Metrics
6+
7+
The following metrics are emitted by default. Each of them can be disabled by applying the following configuration:
8+
9+
```yaml
10+
metrics:
11+
<metric_name>:
12+
enabled: false
13+
```
14+
15+
### wireguard.peer.network.io.usage.rx_bytes
16+
17+
Bytes received by the peer.
18+
19+
| Unit | Metric Type | Value Type | Aggregation Temporality | Monotonic |
20+
| ---- | ----------- | ---------- | ----------------------- | --------- |
21+
| By | Sum | Int | Cumulative | true |
22+
23+
### wireguard.peer.network.io.usage.tx_bytes
24+
25+
Bytes sent.
26+
27+
| Unit | Metric Type | Value Type | Aggregation Temporality | Monotonic |
28+
| ---- | ----------- | ---------- | ----------------------- | --------- |
29+
| By | Sum | Int | Delta | false |
30+
31+
## Resource Attributes
32+
33+
| Name | Description | Values | Enabled |
34+
| ---- | ----------- | ------ | ------- |
35+
| wireguard.device.name | A Device is a WireGuard device. | Any Str | true |
36+
| wireguard.device.type | A DeviceType specifies the underlying implementation of a WireGuard device. | Str: ``Linux kernel``, ``OpenBSD kernel``, ``FreeBSD kernel``, ``Windows kernel``, ``userspace``, ``unknown`` | true |
37+
| wireguard.peer.name | A Device is a WireGuard device. | Any Str | true |

factory.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ func createDefaultConfig() *Config {
2424
cfg.Timeout = 5 * time.Second
2525
return &Config{
2626
ScraperControllerSettings: cfg,
27+
MetricsBuilderConfig: metadata.DefaultMetricsBuilderConfig(),
2728
}
2829
}
2930

go.mod

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ go 1.19
55
require (
66
github.com/stretchr/testify v1.8.4
77
go.opentelemetry.io/collector/component v0.86.0
8+
go.opentelemetry.io/collector/confmap v0.86.0
89
go.opentelemetry.io/collector/consumer v0.86.0
910
go.opentelemetry.io/collector/pdata v1.0.0-rcv0015
1011
go.opentelemetry.io/collector/receiver v0.86.0
@@ -20,7 +21,7 @@ require (
2021
github.com/google/go-cmp v0.5.9 // indirect
2122
github.com/josharian/native v1.1.0 // indirect
2223
github.com/json-iterator/go v1.1.12 // indirect
23-
github.com/knadh/koanf v1.4.3 // indirect
24+
github.com/knadh/koanf v1.5.0 // indirect
2425
github.com/knadh/koanf/v2 v2.0.1 // indirect
2526
github.com/mdlayher/genetlink v1.3.2 // indirect
2627
github.com/mdlayher/netlink v1.7.2 // indirect
@@ -30,11 +31,11 @@ require (
3031
github.com/mitchellh/reflectwalk v1.0.2 // indirect
3132
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
3233
github.com/modern-go/reflect2 v1.0.2 // indirect
34+
github.com/open-telemetry/opentelemetry-collector-contrib/cmd/mdatagen v0.86.0 // indirect
3335
github.com/pmezard/go-difflib v1.0.0 // indirect
3436
go.opencensus.io v0.24.0 // indirect
3537
go.opentelemetry.io/collector v0.86.0 // indirect
3638
go.opentelemetry.io/collector/config/configtelemetry v0.86.0 // indirect
37-
go.opentelemetry.io/collector/confmap v0.86.0 // indirect
3839
go.opentelemetry.io/collector/featuregate v1.0.0-rcv0015 // indirect
3940
go.opentelemetry.io/otel v1.18.0 // indirect
4041
go.opentelemetry.io/otel/metric v1.18.0 // indirect
@@ -43,14 +44,14 @@ require (
4344
go.opentelemetry.io/otel/trace v1.18.0 // indirect
4445
go.uber.org/multierr v1.11.0 // indirect
4546
go.uber.org/zap v1.26.0 // indirect
46-
golang.org/x/crypto v0.13.0 // indirect
47-
golang.org/x/net v0.15.0 // indirect
47+
golang.org/x/crypto v0.14.0 // indirect
48+
golang.org/x/net v0.16.0 // indirect
4849
golang.org/x/sync v0.3.0 // indirect
49-
golang.org/x/sys v0.12.0 // indirect
50+
golang.org/x/sys v0.13.0 // indirect
5051
golang.org/x/text v0.13.0 // indirect
5152
golang.zx2c4.com/wireguard v0.0.0-20230325221338-052af4a8072b // indirect
52-
google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect
53-
google.golang.org/grpc v1.58.1 // indirect
53+
google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 // indirect
54+
google.golang.org/grpc v1.58.2 // indirect
5455
google.golang.org/protobuf v1.31.0 // indirect
5556
gopkg.in/yaml.v3 v3.0.1 // indirect
5657
)

go.sum

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,10 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
158158
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
159159
github.com/knadh/koanf v1.4.3 h1:rSJcSH5LSFhvzBRsAYfT3k7eLP0I4UxeZqjtAatk+wc=
160160
github.com/knadh/koanf v1.4.3/go.mod h1:5FAkuykKXZvLqhAbP4peWgM5CTcZmn7L1d27k/a+kfg=
161+
github.com/knadh/koanf v1.5.0 h1:q2TSd/3Pyc/5yP9ldIrSdIz26MCcyNQzW0pEAugLPNs=
162+
github.com/knadh/koanf v1.5.0/go.mod h1:Hgyjp4y8v44hpZtPzs7JZfRAW5AhN7KfZcwv1RYggDs=
163+
github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NIs=
164+
github.com/knadh/koanf/providers/confmap v0.1.0 h1:gOkxhHkemwG4LezxxN8DMOFopOPghxRVp7JbIvdvqzU=
161165
github.com/knadh/koanf/v2 v2.0.1 h1:1dYGITt1I23x8cfx8ZnldtezdyaZtfAuRtIFOiRzK7g=
162166
github.com/knadh/koanf/v2 v2.0.1/go.mod h1:ZeiIlIDXTE7w1lMT6UVcNiRAS2/rCeLn/GdLNvY1Dus=
163167
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -216,6 +220,8 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW
216220
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
217221
github.com/npillmayer/nestext v0.1.3/go.mod h1:h2lrijH8jpicr25dFY+oAJLyzlya6jhnuG+zWp9L0Uk=
218222
github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
223+
github.com/open-telemetry/opentelemetry-collector-contrib/cmd/mdatagen v0.86.0 h1:tyiUPgapucBnGN5A1Ly1zBh4TJRJCtI6awjPqEO9vG0=
224+
github.com/open-telemetry/opentelemetry-collector-contrib/cmd/mdatagen v0.86.0/go.mod h1:baZ6CnCoqDTI42m3pVwZpLLp8cpcLFfdA82Zu7N1CtM=
219225
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
220226
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
221227
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
@@ -324,6 +330,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
324330
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
325331
golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck=
326332
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
333+
golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
334+
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
327335
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
328336
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
329337
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
@@ -353,6 +361,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b
353361
golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8=
354362
golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
355363
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
364+
golang.org/x/net v0.16.0 h1:7eBu7KsSvFDtSXUIDbh3aqlK4DPsZ1rByC8PFfBThos=
365+
golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
356366
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
357367
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
358368
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -399,6 +409,8 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc
399409
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
400410
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
401411
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
412+
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
413+
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
402414
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
403415
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
404416
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
@@ -438,6 +450,8 @@ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEY
438450
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
439451
google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U=
440452
google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
453+
google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 h1:6GQBEOdGkX6MMTLT9V+TjtIRZCw9VPD5Z+yHY9wMgS0=
454+
google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY=
441455
google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
442456
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
443457
google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
@@ -449,6 +463,8 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv
449463
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
450464
google.golang.org/grpc v1.58.1 h1:OL+Vz23DTtrrldqHK49FUOPHyY75rvFqJfXC84NYW58=
451465
google.golang.org/grpc v1.58.1/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
466+
google.golang.org/grpc v1.58.2 h1:SXUpjxeVF3FKrTYQI4f4KvbGD5u2xccdYdurwowix5I=
467+
google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
452468
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
453469
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
454470
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=

internal/metadata/generated_config.go

Lines changed: 80 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)