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

Create modules for integrations #919

Merged
merged 10 commits into from
Dec 16, 2024
Merged

Create modules for integrations #919

merged 10 commits into from
Dec 16, 2024

Conversation

ribice
Copy link
Collaborator

@ribice ribice commented Dec 8, 2024

Closes #156

Copy link

codecov bot commented Dec 8, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 83.56%. Comparing base (77bd21b) to head (388b4d9).
Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #919      +/-   ##
==========================================
- Coverage   83.85%   83.56%   -0.30%     
==========================================
  Files          49       49              
  Lines        5128     5128              
==========================================
- Hits         4300     4285      -15     
- Misses        674      687      +13     
- Partials      154      156       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ribice
Copy link
Collaborator Author

ribice commented Dec 8, 2024

I haven't touched any dependencies (version), but it's complaining about Fiber. I'll just update it I guess. cc @cleptric

@ribice ribice marked this pull request as ready for review December 8, 2024 22:37
@ribice
Copy link
Collaborator Author

ribice commented Dec 8, 2024

Tested locally, works fine. This is technically a breaking change since if someone runs go get -u github.com/getsentry/sentry-go, they'll need to run go get github.com/getsentry/sentry-go/integration (or go get ./...) to make their application work.

@@ -6,6 +6,8 @@

- Remove all code related to Sentry's previous Metrics product. Read more about the end of the Metrics beta ([here](https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Metrics-Beta-Ended-on-October-7th)) ([#914](https://github.com/getsentry/sentry-go/pull/914))

- Every integration is now a separate module, reducing the binary size and number of dependencies. Once you update `sentry-go` to latest version, you'll need to `go get` the integration you want to use. For example, if you want to use the `echo` integration, you'll need to run `go get github.com/getsentry/sentry-go/echo` ([#919](github.com/getsentry/sentry-go/pull/919)).
Copy link
Member

Choose a reason for hiding this comment

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

reducing the binary size

This should not be the case due to Module Graph Pruning.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Hmm, I tested this locally just to make sure. Imported echo only, and did go build .

echo-new 4931.21 KB
echo-old 4948.81 KB

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

go build -ldflags " -s -w" .

echo-new                                  3454.99 KB
echo-old                                  3472.00 KB

@ribice ribice merged commit 3a08424 into master Dec 16, 2024
16 checks passed
@ribice ribice deleted the integrations-modules branch December 16, 2024 14:48
bogdandrutu pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Jan 3, 2025
…37019)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go)
| `v0.30.0` -> `v0.31.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgetsentry%2fsentry-go/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgetsentry%2fsentry-go/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgetsentry%2fsentry-go/v0.30.0/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgetsentry%2fsentry-go/v0.30.0/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>getsentry/sentry-go (github.com/getsentry/sentry-go)</summary>

###
[`v0.31.1`](https://github.com/getsentry/sentry-go/releases/tag/v0.31.1):
0.31.1

[Compare
Source](https://github.com/getsentry/sentry-go/compare/v0.31.0...v0.31.1)

The Sentry SDK team is happy to announce the immediate availability of
Sentry Go SDK v0.31.1.

##### Bug Fixes

- Correct wrong module name for `sentry-go/logrus`
([#&#8203;950](https://github.com/getsentry/sentry-go/pull/950))

###
[`v0.31.0`](https://github.com/getsentry/sentry-go/releases/tag/v0.31.0):
0.31.0

[Compare
Source](https://github.com/getsentry/sentry-go/compare/v0.30.0...v0.31.0)

##### Breaking Changes

- Remove support for metrics. Read more about the end of the Metrics
beta
[here](https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Metrics-Beta-Ended-on-October-7th).
([#&#8203;914](https://github.com/getsentry/sentry-go/pull/914))

- Remove support for profiling.
([#&#8203;915](https://github.com/getsentry/sentry-go/pull/915))

- Remove `Segment` field from the `User` struct. This field is no longer
used in the Sentry product.
([#&#8203;928](https://github.com/getsentry/sentry-go/pull/928))

- Every integration is now a separate module, reducing the binary size
and number of dependencies. Once you update `sentry-go` to latest
version, you'll need to `go get` the integration you want to use. For
example, if you want to use the `echo` integration, you'll need to run
`go get github.com/getsentry/sentry-go/echo`
([#&#8203;919](github.com/getsentry/sentry-go/pull/919)).

##### Features

Add the ability to override `hub` in `context` for integrations that use
custom context.
([#&#8203;931](https://github.com/getsentry/sentry-go/pull/931))

- Add `HubProvider` Hook for `sentrylogrus`, enabling dynamic Sentry hub
allocation for each log entry or goroutine.
([#&#8203;936](https://github.com/getsentry/sentry-go/pull/936))

This change enhances compatibility with Sentry's recommendation of using
separate hubs per goroutine. To ensure a separate Sentry hub for each
goroutine, configure the `HubProvider` like this:

```go
hook, err := sentrylogrus.New(nil, sentry.ClientOptions{})
if err != nil {
    log.Fatalf("Failed to initialize Sentry hook: %v", err)
}

// Set a custom HubProvider to generate a new hub for each goroutine or log entry
hook.SetHubProvider(func() *sentry.Hub {
    client, _ := sentry.NewClient(sentry.ClientOptions{})
    return sentry.NewHub(client, sentry.NewScope())
})

logrus.AddHook(hook)
```

##### Bug Fixes

- Add support for closing worker goroutines started by the
`HTTPTranport` to prevent goroutine leaks.
([#&#8203;894](https://github.com/getsentry/sentry-go/pull/894))

```go
client, _ := sentry.NewClient()
defer client.Close()
```

Worker can be also closed by calling `Close()` method on the
`HTTPTransport` instance. `Close` should be called after `Flush` and
before terminating the program otherwise some events may be lost.

```go
transport := sentry.NewHTTPTransport()
defer transport.Close()
```

##### Misc

- Bump [gin-gonic/gin](https://github.com/gin-gonic/gin) to
v1.9.1.
([#&#8203;946](https://github.com/getsentry/sentry-go/pull/946))

</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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

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

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <[email protected]>
AkhigbeEromo pushed a commit to sematext/opentelemetry-collector-contrib that referenced this pull request Jan 13, 2025
…pen-telemetry#37019)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go)
| `v0.30.0` -> `v0.31.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgetsentry%2fsentry-go/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgetsentry%2fsentry-go/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgetsentry%2fsentry-go/v0.30.0/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgetsentry%2fsentry-go/v0.30.0/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>getsentry/sentry-go (github.com/getsentry/sentry-go)</summary>

###
[`v0.31.1`](https://github.com/getsentry/sentry-go/releases/tag/v0.31.1):
0.31.1

[Compare
Source](https://github.com/getsentry/sentry-go/compare/v0.31.0...v0.31.1)

The Sentry SDK team is happy to announce the immediate availability of
Sentry Go SDK v0.31.1.

##### Bug Fixes

- Correct wrong module name for `sentry-go/logrus`
([#&open-telemetry#8203;950](https://github.com/getsentry/sentry-go/pull/950))

###
[`v0.31.0`](https://github.com/getsentry/sentry-go/releases/tag/v0.31.0):
0.31.0

[Compare
Source](https://github.com/getsentry/sentry-go/compare/v0.30.0...v0.31.0)

##### Breaking Changes

- Remove support for metrics. Read more about the end of the Metrics
beta
[here](https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Metrics-Beta-Ended-on-October-7th).
([#&open-telemetry#8203;914](https://github.com/getsentry/sentry-go/pull/914))

- Remove support for profiling.
([#&open-telemetry#8203;915](https://github.com/getsentry/sentry-go/pull/915))

- Remove `Segment` field from the `User` struct. This field is no longer
used in the Sentry product.
([#&open-telemetry#8203;928](https://github.com/getsentry/sentry-go/pull/928))

- Every integration is now a separate module, reducing the binary size
and number of dependencies. Once you update `sentry-go` to latest
version, you'll need to `go get` the integration you want to use. For
example, if you want to use the `echo` integration, you'll need to run
`go get github.com/getsentry/sentry-go/echo`
([#&open-telemetry#8203;919](github.com/getsentry/sentry-go/pull/919)).

##### Features

Add the ability to override `hub` in `context` for integrations that use
custom context.
([#&open-telemetry#8203;931](https://github.com/getsentry/sentry-go/pull/931))

- Add `HubProvider` Hook for `sentrylogrus`, enabling dynamic Sentry hub
allocation for each log entry or goroutine.
([#&open-telemetry#8203;936](https://github.com/getsentry/sentry-go/pull/936))

This change enhances compatibility with Sentry's recommendation of using
separate hubs per goroutine. To ensure a separate Sentry hub for each
goroutine, configure the `HubProvider` like this:

```go
hook, err := sentrylogrus.New(nil, sentry.ClientOptions{})
if err != nil {
    log.Fatalf("Failed to initialize Sentry hook: %v", err)
}

// Set a custom HubProvider to generate a new hub for each goroutine or log entry
hook.SetHubProvider(func() *sentry.Hub {
    client, _ := sentry.NewClient(sentry.ClientOptions{})
    return sentry.NewHub(client, sentry.NewScope())
})

logrus.AddHook(hook)
```

##### Bug Fixes

- Add support for closing worker goroutines started by the
`HTTPTranport` to prevent goroutine leaks.
([#&open-telemetry#8203;894](https://github.com/getsentry/sentry-go/pull/894))

```go
client, _ := sentry.NewClient()
defer client.Close()
```

Worker can be also closed by calling `Close()` method on the
`HTTPTransport` instance. `Close` should be called after `Flush` and
before terminating the program otherwise some events may be lost.

```go
transport := sentry.NewHTTPTransport()
defer transport.Close()
```

##### Misc

- Bump [gin-gonic/gin](https://github.com/gin-gonic/gin) to
v1.9.1.
([#&open-telemetry#8203;946](https://github.com/getsentry/sentry-go/pull/946))

</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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

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

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <[email protected]>
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.

Split sentry-go into multiple submodules
2 participants