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

[exporter/awsemf] Drop metrics with Inf values #29698

Closed
wants to merge 24 commits into from

Conversation

jayasai470
Copy link
Contributor

Description: Metrics with Inf values for float types would cause the EMF Exporter to error out during JSON Marshaling. This PR introduces a change to drop metric values that contain Inf.

Link to tracking Issue: Fixes #29336

Testing: Added unit tests at several different points with varying levels of specificity. Unit tests are quite verbose in this example but I have followed the format of existing tests while doing very little refactoring.

Documentation: Update README

@jayasai470 jayasai470 requested a review from Aneurysm9 as a code owner December 7, 2023 22:22
@jayasai470 jayasai470 requested a review from a team December 7, 2023 22:22
Copy link

linux-foundation-easycla bot commented Dec 7, 2023

CLA Signed

The committers listed above are authorized under a signed CLA.

  • ✅ login: jayasai470 / name: jay (35e04e0, 8380d8b)
  • ✅ login: djaglowski / name: Daniel Jaglowski (0ccff12, be93211, 48e1777, 2521a10)
  • ✅ login: mcube8 (a7470f4)
  • ✅ login: jmichalek132 / name: Juraj Michálek (fcf373a)
  • ✅ login: dashpole / name: David Ashpole (fcf373a)
  • ✅ login: TylerHelmuth / name: Tyler Helmuth (7edaeaf)
  • ✅ login: recht / name: Joakim Recht (e86c022)
  • ✅ login: codeboten / name: Alex Boten (e6cb791, b829af2, a5f4d00)
  • ✅ login: diurnalist / name: Jason Anderson (b829af2)
  • ✅ login: bryan-aguilar (ffbfc6b)
  • ✅ login: renovate[bot] (63f8103, a5f4d00)
  • ✅ login: shalper2 (efeab11)
  • ✅ login: atoulme / name: Antoine Toulme (eb435d0)
  • ✅ login: mx-psi / name: Pablo Baeyens (4a89d29, 244b4b4)
  • ✅ login: cparkins / name: Chris Parkins (c531550)
  • ✅ login: mackjmr / name: Mackenzie (962e116)
  • ✅ login: axw / name: Andrew Wilkins (023ede0)
  • ✅ login: gyliu513 / name: Guangya Liu (8b01d0d)
  • ✅ login: crobert-1 / name: Curtis Robert (5364dde)

@github-actions github-actions bot added the exporter/awsemf awsemf exporter label Dec 7, 2023
jayasai470 and others added 24 commits December 7, 2023 18:17
…ry#29666)

This also includes some related refactoring of test code:
- Moved `tokenWithLength` utility function to `filetest`, since it's not
used by both `fileconsumer` and `reader` packages.
- Refactored `testFactory` to start with a default config and then apply
options as necessary per test. I expect eventually the _actual_
`reader.Factory` will be cleaned up to support a similar pattern, but
I'm trying to keep changes to test code until we have better coverage in
the `reader` package.
**Description:** Export Implementation of Alertmanager Exporter
Second PR - exporter implementation

**Link to tracking Issue:**
[open-telemetry#23659](open-telemetry#23569)

**Testing:** Unit tests for exporter implementation

**Documentation:** Readme and Sample Configs to use Alertmanager
exporter
`reader.Config` contained many fields which were only relevant to
`reader.Factory`. Once moving these fields to `reader.Factory`, it
became apparent that the `reader.Reader` struct only needs access to a
few specific fields (`fingerprintSize`, `maxLogSize`, `deleteAtEOF`,
`emitFunc`). This also contains some corresponding cleanup of the fields
within the factory struct.
…created metric (open-telemetry#29503)

As disucssed on cncf
[slack](https://cloud-native.slack.com/archives/C01LSCJBXDZ/p1700938910822949)
fixing the issue with _created metrics where prometheus backend refuses
it due to "too old" due to not setting a timestamp for the sample
created. The timestamp used is the timestamp for the original sample the
correspondent _created metrics is generated for.

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

Tested locally with prometheus compatible backend.

---------

Co-authored-by: Anthony Mirabella <[email protected]>
Co-authored-by: David Ashpole <[email protected]>
…open-telemetry#29605)

**Description:**
There are cases where all except a few databases should be collected,
for example the `rdsadmin` database in Amazon RDS is not accessible to
regular users. This PR adds an `exclude_databases` config setting to the
psql collector where it's possible to specify a list of databases that
should be excluded.

**Testing:**

Unit tests added

**Documentation:** 

Readme updated with new config setting

---------

Co-authored-by: Daniel Jaglowski <[email protected]>
dogstatsd supports two types of tags on metrics: simple and dimensional
tags[^1]. the former is just a key, the latter is a key and a value.

with the assumption that many users of the statsdreceiver are enabling
ingest of dogstatsd metrics, this makes the statsd parser more
optimistic, so it can handle tags w/o a value. this functionality is
gated behind a new `enable_simple_tags` flag.

when this happens, we set an attribute that has a zero value. so far as
i know, this is allowed in the opentelemetry spec. the decision of how
to handle attributes w/ zero values is best left to configuration w/in
the pipeline itself, as different users may have different opinions or
approaches that work best with their systems.

[^1]:
https://www.datadoghq.com/blog/the-power-of-tagged-metrics/#whats-a-metric-tag

**Testing:**

added coverage to unit tests to enable parsing simple tags.

---------

Co-authored-by: Alex Boten <[email protected]>
…ests (open-telemetry#29595)

**Description:** Add the component name as a field in outgoing
CloudWatch logs put log event requests. This change allows us to
distinguish the source of requests between the AWS EMF exporter and AWS
CloudWatch logs exporter.

**Testing:** Update unit tests
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/aws/aws-sdk-go](https://togithub.com/aws/aws-sdk-go) |
require | patch | `v1.48.12` -> `v1.48.14` |
|
[github.com/aws/aws-sdk-go-v2/config](https://togithub.com/aws/aws-sdk-go-v2)
| require | patch | `v1.25.11` -> `v1.25.12` |
|
[github.com/aws/aws-sdk-go-v2/credentials](https://togithub.com/aws/aws-sdk-go-v2)
| require | patch | `v1.16.9` -> `v1.16.10` |
|
[github.com/aws/aws-sdk-go-v2/service/kinesis](https://togithub.com/aws/aws-sdk-go-v2)
| require | patch | `v1.24.2` -> `v1.24.3` |
|
[github.com/aws/aws-sdk-go-v2/service/s3](https://togithub.com/aws/aws-sdk-go-v2)
| require | patch | `v1.47.2` -> `v1.47.3` |
|
[github.com/aws/aws-sdk-go-v2/service/sts](https://togithub.com/aws/aws-sdk-go-v2)
| require | patch | `v1.26.2` -> `v1.26.3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>aws/aws-sdk-go (github.com/aws/aws-sdk-go)</summary>

###
[`v1.48.14`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v14814-2023-12-06)

[Compare
Source](https://togithub.com/aws/aws-sdk-go/compare/v1.48.13...v1.48.14)

\===

##### Service Client Updates

-   `service/backup`: Updates service API and documentation
-   `service/comprehend`: Updates service documentation
-   `service/connect`: Updates service API and documentation
-   `service/ec2`: Updates service API and documentation
- Releasing the new cpuManufacturer attribute within the
DescribeInstanceTypes API response which notifies our customers with
information on who the Manufacturer is for the processor attached to the
instance, for example: Intel.
- `service/payment-cryptography`: Updates service API and documentation

###
[`v1.48.13`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v14813-2023-12-05)

[Compare
Source](https://togithub.com/aws/aws-sdk-go/compare/v1.48.12...v1.48.13)

\===

##### Service Client Updates

-   `service/athena`: Updates service API and documentation
    -   Adding IdentityCenter enabled request for interactive query
-   `service/cleanroomsml`: Updates service API and documentation
-   `service/cloudformation`: Updates service documentation
    -   Documentation update, December 2023
-   `service/ec2`: Updates service API and documentation
- Adds A10G, T4G, and H100 as accelerator name options and Habana as an
accelerator manufacturer option for attribute based selection

</details>

<details>
<summary>aws/aws-sdk-go-v2
(github.com/aws/aws-sdk-go-v2/credentials)</summary>

###
[`v1.16.10`](https://togithub.com/aws/aws-sdk-go-v2/compare/v1.16.9...v1.16.10)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <[email protected]>
…elemetry#29653)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/antonmedv/expr](https://togithub.com/antonmedv/expr) |
require | patch | `v1.15.5` -> `v1.15.6` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>antonmedv/expr (github.com/antonmedv/expr)</summary>

###
[`v1.15.6`](https://togithub.com/expr-lang/expr/releases/tag/v1.15.6)

[Compare
Source](https://togithub.com/antonmedv/expr/compare/v1.15.5...v1.15.6)

-   This is a new release for `expr-lang/epxr`.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Signed-off-by: Alex Boten <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Boten <[email protected]>
Continuation of the work on
open-telemetry#27849
- now opening a way to create lifecycle tests for receivers.
…elemetry#29588)

**Description:**

Adds support for `host.mac` detection to the `system` detector on the
resource detection processor.

This convention is defined in the specification [on the host
document](https://github.com/open-telemetry/semantic-conventions/blob/v1.23.1/docs/resource/host.md).

**Link to tracking Issue:** Fixes open-telemetry#29587 and therefore fixes open-telemetry#22045

**Testing:** 

Unit tests; manually Tested on my laptop with the following
configuration:

```
receivers:
  hostmetrics:
    collection_interval: 10s
    scrapers:
      load:

processors:
  resourcedetection:
    detectors: ["system"]
    system:
      resource_attributes:
        host.mac:
          enabled: true

exporters:
  debug:
    verbosity: detailed

service:
  pipelines:
    metrics:
      receivers: [hostmetrics]
      processors: [resourcedetection]
      exporters: [debug]
```

---------

Co-authored-by: Curtis Robert <[email protected]>
**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
Add support for the Azure Resource Log format so that Diagnostic logs
from Azure can be consumed by a Kafka Receiver.

**Link to tracking Issue:** <Issue number if applicable>
open-telemetry#18210 

**Testing:** <Describe what testing was performed and which tests were
added.>
Local testing to ensure that data is being converted correctly when
Streaming from Azure Diagnostic Settings to Event Hubs and using the
Kafka Receiver.

**Documentation:** <Describe the documentation added.>
Added a bullet for the added azure format.
**Description:** 

Adds working examples configs.

**Link to tracking Issue:** <Issue number if applicable>

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>
**Description:** 

We now have pdata 1.0.0 🎉. After
open-telemetry/opentelemetry-collector/pull/8975, we decided not to have
RC releases, so there is no need to have the RC block.
**Description:**

Drawing inspiration from
https://github.com/bazelbuild/starlark#design-principles and
https://github.com/google/cel-spec/blob/master/doc/langdef.md#overview,
add a brief section about design principles.

The aim of this is to ensure OTTL is and remains safe for execution of
untrusted programs in multi-tenant systems, where tenants can provide
their own OTTL programs.

---------

Co-authored-by: Evan Bradley <[email protected]>
**Link to tracking Issue:**
Fixed
open-telemetry#29568

**Testing:**
demo-client and demo-server service show up in Jaeger
…ry#29692)

@marctc is the original component proposer and author, and is now a
[member of the OpenTelemetry
community](open-telemetry/community#1761). He
also [expressed interest in being a code
owner](open-telemetry#24409 (comment))
when I asked.
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.

[exporter/awsemf] Fails to translate inf metrics