Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[receiver/dockerstats] Add inspect metrics #21803

Merged
merged 149 commits into from
Nov 18, 2023

Conversation

carlossscastro
Copy link
Contributor

@carlossscastro carlossscastro commented May 11, 2023

Description:

Adds 3 new metrics from the docker inspect api

  • container.cpu.limit
  • container.cpu.shares
  • container.restart.count

Since all these metrics are collected from the inspect api, a new method was created (recordInspectMetrics) where only the containerJSON structure is passed as an argument.

Link to tracking Issue: #21087

Testing:

New metrics were added to the receiver test and expected_metrics.yaml files.
The receiver and config tests were also adjusted to reflect the minimum api version of 1.25

❯ go clean -testcache
❯ make test
go test -race -timeout 300s -parallel 4 --tags="" ./...
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver	0.508s
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver/internal/metadata	0.381s
❯ go test --tags integration ./...
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver	14.060s
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver/internal/metadata	0.241s

Documentation:
New metrics documentation was generated using mdatagen

@carlossscastro carlossscastro requested review from a team and andrzej-stencel May 11, 2023 13:47
@carlossscastro carlossscastro changed the title Add inspect metrics [receiver/dockerstats] Add inspect metrics May 11, 2023
@andrzej-stencel
Copy link
Member

Shouldn't container.restart.count rather be named container.restarts?

According to the spec, count should only be used on namespaces. Is container.restarts a namespace that can include other metrics? If not, we should use container.restarts without the count suffix.

.chloggen/add_inspect_metrics.yaml Outdated Show resolved Hide resolved
receiver/dockerstatsreceiver/metadata.yaml Outdated Show resolved Hide resolved
receiver/dockerstatsreceiver/receiver.go Outdated Show resolved Hide resolved
receiver/dockerstatsreceiver/receiver.go Outdated Show resolved Hide resolved
receiver/dockerstatsreceiver/metadata.yaml Outdated Show resolved Hide resolved
receiver/dockerstatsreceiver/metadata.yaml Outdated Show resolved Hide resolved
receiver/dockerstatsreceiver/metadata.yaml Outdated Show resolved Hide resolved
receiver/dockerstatsreceiver/receiver.go Outdated Show resolved Hide resolved
Copy link
Member

@gbbr gbbr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding this Carlos! Left a small comment, hope it helps :)

receiver/dockerstatsreceiver/receiver.go Outdated Show resolved Hide resolved
@fatsheep9146
Copy link
Contributor

here is a failed check

Error: ../../receiver/dockerstatsreceiver/receiver.go:124:14: r.recordHostConfigMetrics undefined (type *metricsReceiver has no field or method recordHostConfigMetrics)
Error: ../../receiver/dockerstatsreceiver/receiver.go:287:10: use of package receiver not in selector

@sigilioso

@sigilioso
Copy link
Contributor

sigilioso commented Nov 15, 2023

Thanks for the heads up! It was an issue with one of the latest updates from main. It is fixed now: c374199

@gbbr
Copy link
Member

gbbr commented Nov 16, 2023

Why is this PR not getting merged? I see that everything is addressed and it has plenty of approvals.

@MovieStoreGuy MovieStoreGuy merged commit d7e1933 into open-telemetry:main Nov 18, 2023
83 checks passed
@github-actions github-actions bot added this to the next release milestone Nov 18, 2023
RoryCrispin pushed a commit to ClickHouse/opentelemetry-collector-contrib that referenced this pull request Nov 24, 2023
**Description:**

Adds 3 new metrics from the docker inspect api
* container.cpu.limit
* container.cpu.shares
* container.restart.count

Since all these metrics are collected from the inspect api, a new method
was created (`recordInspectMetrics`) where only the containerJSON
structure is passed as an argument.

**Link to tracking Issue:** open-telemetry#21087

**Testing:**

New metrics were added to the receiver test and expected_metrics.yaml
files.
The receiver and config tests were also adjusted to reflect the minimum
api version of 1.25

```
❯ go clean -testcache
❯ make test
go test -race -timeout 300s -parallel 4 --tags="" ./...
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver	0.508s
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver/internal/metadata	0.381s
❯ go test --tags integration ./...
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver	14.060s
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver/internal/metadata	0.241s
```

**Documentation:**
New metrics documentation was generated using `mdatagen`

---------

Signed-off-by: Paschalis Tsilias <paschalis.tsilias@gmail.com>
Signed-off-by: Christian Kruse <ctkruse99@gmail.com>
Signed-off-by: Dani Louca <dlouca@splunk.com>
Signed-off-by: Jared Tan <jian.tan@daocloud.io>
Signed-off-by: Dominik Rosiek <drosiek@sumologic.com>
Signed-off-by: Raphael Silva <rapphil@gmail.com>
Signed-off-by: Alex Boten <aboten@lightstep.com>
Signed-off-by: Pavol Loffay <p.loffay@gmail.com>
Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>
Signed-off-by: Sean Porter <portertech@gmail.com>
Co-authored-by: Christian Felipe Álvarez <calvarez@newrelic.com>
Co-authored-by: Christian <sigilioso@gmail.com>
Co-authored-by: Ryan Fitzpatrick <10867373+rmfitzpatrick@users.noreply.github.com>
Co-authored-by: Martin Majlis <122797378+martin-majlis-s1@users.noreply.github.com>
Co-authored-by: Daniel Jaglowski <jaglows3@gmail.com>
Co-authored-by: hovavza <147598197+hovavza@users.noreply.github.com>
Co-authored-by: Povilas Versockas <povilas.versockas@coralogix.com>
Co-authored-by: Dmitrii Anoshin <anoshindx@gmail.com>
Co-authored-by: sakulali <sakulali@126.com>
Co-authored-by: OpenTelemetry Bot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>
Co-authored-by: Paschalis Tsilias <tpaschalis@users.noreply.github.com>
Co-authored-by: Juraci Paixão Kröhling <juraci@kroehling.de>
Co-authored-by: Andrzej Stencel <astencel@sumologic.com>
Co-authored-by: Brandon Johnson <brandon.johnson@bluemedora.com>
Co-authored-by: Miel Donkers <miel.donkers@gmail.com>
Co-authored-by: bryan-aguilar <46550959+bryan-aguilar@users.noreply.github.com>
Co-authored-by: Christian Kruse <ctkruse99@gmail.com>
Co-authored-by: gord02 <53834349+gord02@users.noreply.github.com>
Co-authored-by: bagmeg <joonsoo181005@gmail.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>
Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>
Co-authored-by: Curtis Robert <crobert@splunk.com>
Co-authored-by: VihasMakwana <121151420+VihasMakwana@users.noreply.github.com>
Co-authored-by: Antoine Toulme <antoine@lunar-ocean.com>
Co-authored-by: Dani Louca <59848726+dloucasfx@users.noreply.github.com>
Co-authored-by: xu0o0 <hq.xu0o0@gmail.com>
Co-authored-by: David Ashpole <dashpole@google.com>
Co-authored-by: Jared Tan <jian.tan@daocloud.io>
Co-authored-by: Raj Nishtala <113392743+rnishtala-sumo@users.noreply.github.com>
Co-authored-by: Dominik Rosiek <58699848+sumo-drosiek@users.noreply.github.com>
Co-authored-by: Priyanshu Raj <55045459+rpriyanshu9@users.noreply.github.com>
Co-authored-by: Raphael Philipe Mendes da Silva <rapphil@gmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Yotam loewenbach <48534558+yotamloe@users.noreply.github.com>
Co-authored-by: Alex Boten <aboten@lightstep.com>
Co-authored-by: Jina Jain <jjain@splunk.com>
Co-authored-by: Curtis Robert <92119472+crobert-1@users.noreply.github.com>
Co-authored-by: Abhishek Saharn <102726227+asaharn@users.noreply.github.com>
Co-authored-by: Ramachandran A G <ramacg@microsoft.com>
Co-authored-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Co-authored-by: Ramachandran A G <106139410+ag-ramachandran@users.noreply.github.com>
Co-authored-by: Faith Chikwekwe <faithchikwekwe01@gmail.com>
Co-authored-by: Daniel Kuiper <44123852+kuiperda@users.noreply.github.com>
Co-authored-by: ArchangelSDY <Archangel.SDY@gmail.com>
Co-authored-by: Pavol Loffay <p.loffay@gmail.com>
Co-authored-by: Paulo Janotti <pjanotti@splunk.com>
Co-authored-by: Nathan Burke <n.burke@natbur.com>
Co-authored-by: shalper2 <99686388+shalper2@users.noreply.github.com>
Co-authored-by: 道君 <daojun@apache.org>
Co-authored-by: Colin Desmond <codesmon@microsoft.com>
Co-authored-by: Mario <mariorvinas@gmail.com>
Co-authored-by: Paulin Todev <paulin.todev@gmail.com>
Co-authored-by: Steven Swartz <stevenswartz@live.ca>
Co-authored-by: Chris Parkins <cjparkins@yahoo.com>
Co-authored-by: Frederic Branczyk <fbranczyk@gmail.com>
Co-authored-by: Jiekun <zhujiekun@52tt.com>
Co-authored-by: Joel <joelperez91@gmail.com>
Co-authored-by: Sean Porter <portertech@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
Co-authored-by: nzbart <nzbart@users.noreply.github.com>
Co-authored-by: Pavan Krishna <pavankri@cisco.com>
Co-authored-by: pszkamruk-splunk <75434853+pszkamruk-splunk@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.