Skip to content

Commit

Permalink
Prepare release v0.4.0 (#69)
Browse files Browse the repository at this point in the history
* Release v0.4.0

* Update changelog

* Update docs

* Update changelog

* Fix date

* Fix changelog

* Remove dead hyperlink

* Update Makefile
  • Loading branch information
pellared committed Jun 30, 2021
1 parent 14a3b97 commit 8784481
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 44 deletions.
9 changes: 7 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm

## [Unreleased]

## [0.4.0] - 2021-06-30

The primary change of this release is updating the dependency of `go.opentelemetry.io/otel*` packages from [`v0.20.0`][otel-v0.20.0] to [`v1.0.0-RC1`][otel-v1.0.0-RC1] and `go.opentelemetry.io/contrib*` packages from [`v0.20.0`][contrib-v0.20.0] to [`v0.21.0`][contrib-v0.21.0].

### Changed

- Update `go.opentelemetry.io/otel*` dependencies from [`v0.20.0`][otel-v0.20.0] to [`v1.0.0-RC1`][otel-v1.0.0-RC1].
Expand Down Expand Up @@ -43,7 +47,7 @@ for sending data directly to Splunk Observability Cloud.

## [0.2.0] - 2021-04-27

The primary change of this release is updating the dependency of `go.opentelemetry.io/otel*` packages from [`v0.19.0`][otel-v0.19.0] to [`v0.20.0`][otel-v0.20.0] and similarly `go.opentelemetry.io/contrib*` package from [`v0.19.0`][contrib-v0.19.0] to [`v0.20.0`][contrib-v0.20.0].
The primary change of this release is updating the dependency of `go.opentelemetry.io/otel*` packages from [`v0.19.0`][otel-v0.19.0] to [`v0.20.0`][otel-v0.20.0] and similarly `go.opentelemetry.io/contrib*` packages from [`v0.19.0`][contrib-v0.19.0] to [`v0.20.0`][contrib-v0.20.0].
This includes [a fix](https://github.com/open-telemetry/opentelemetry-go/pull/1830) in the Jaeger exporter.
This fix removes the duplicate batching that the exporter implemented.
Now the `BatchSpanProcessor` that `distro` configures by default will not experience an impedance mismatch with this duplicate batching.
Expand All @@ -60,7 +64,8 @@ Now the `BatchSpanProcessor` that `distro` configures by default will not experi
- Add [`distro`](./distro) package providing functionality to quickly setup the OpenTelemetry Go implementation with useful Splunk defaults.
- Add [`splunkhttp`](./instrumentation/net/http/splunkhttp) module providing additional Splunk specific instrumentation for `net/http`.

[Unreleased]: https://github.com/signalfx/splunk-otel-go/compare/v0.3.0...HEAD
[Unreleased]: https://github.com/signalfx/splunk-otel-go/compare/v0.4.0...HEAD
[0.4.0]: https://github.com/signalfx/splunk-otel-go/releases/tag/v0.4.0
[0.3.0]: https://github.com/signalfx/splunk-otel-go/releases/tag/v0.3.0
[0.2.0]: https://github.com/signalfx/splunk-otel-go/releases/tag/v0.2.0
[0.1.0]: https://github.com/signalfx/splunk-otel-go/releases/tag/v0.1.0
Expand Down
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.

SHELL := /bin/bash

GO = go
TIMEOUT = 15
PKGS = ./...
Expand Down
50 changes: 28 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,35 +15,36 @@ application to capture and report distributed traces to Splunk APM.
This Splunk distribution comes with the following defaults:

- [B3 context propagation](https://github.com/openzipkin/b3-propagation).
- [Jaeger thrift
exporter](https://opentelemetry-python.readthedocs.io/en/stable/exporter/jaeger/jaeger.html)
configured to send spans to a locally running [SignalFx Smart
Agent](https://docs.signalfx.com/en/latest/apm/apm-getting-started/apm-smart-agent.html)
(`http://localhost:9080/v1/trace`).
- Unlimited default limits for [configuration options](#trace-configuration) to
- [Jaeger Thrift over HTTP
exporter](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/jaeger)
configured to send spans to a locally running Splunk OpenTelemetry Connector](https://github.com/signalfx/splunk-otel-collector)
(`http://localhost:14268/api/traces`).
- Unlimited default limits for configuration options to
support full-fidelity traces.

> :construction: This project is currently in **BETA**. It is **officially supported** by Splunk. However, breaking changes **MAY** be introduced.
## Getting Started

Supported libraries are listed
[here](https://github.com/open-telemetry/opentelemetry-go-contrib/tree/master/instrumentation).
### Bootstrapping

Configure OpenTelemetry using the [`distro`](./distro) package:

```go
package main

To ensure OpenTelemetry is correctly configured to participate in traces and send telemetry to Splunk, use the [`distro`](./distro) package.
import (
"context"

"github.com/signalfx/splunk-otel-go/distro"
)

```golang
func main() {
// By default, the Run function will create a Jaeger exporter to a locally
// running Splunk Smart Agent at http://localhost:9080 and will configure
// the B3 context propagation format to be used in extracting and
// injecting trace context.
sdk, err := distro.Run()
if err != nil {
panic(err)
}
// To ensure all spans are flushed before the application exits, make sure
// to shutdown.
// Ensure all spans are flushed before the application exits.
defer func() {
if err := sdk.Shutdown(context.Background()); err != nil {
panic(err)
Expand All @@ -53,7 +54,16 @@ func main() {
/* ... */
```
## Manually instrument an application
### Library instrumentation
Supported libraries are listed
[here](https://github.com/open-telemetry/opentelemetry-go-contrib/tree/master/instrumentation).
Splunk specific instrumentations:
- [`splunkhttp`](./instrumentation/net/http/splunkhttp)
### Manual instrumentation
Documentation on how to manually instrument a Go application is available
[here](https://opentelemetry.io/docs/go/getting-started/).
Expand All @@ -66,13 +76,9 @@ Documentation on how to manually instrument a Go application is available
[<a name="cfg1">1</a>]: The [Splunk's organization access token](https://docs.splunk.com/observability/admin/authentication-tokens/org-tokens.html)
allows exporters sending data directly to the [Splunk Observability Cloud](https://dev.splunk.com/observability/docs/apibasics/api_list/).
To do so, the `OTEL_EXPORTER_JAEGER_ENDPOINT` or `contrib.WithEndpoint` must be set
To do so, the `OTEL_EXPORTER_JAEGER_ENDPOINT` or `distro.WithEndpoint` must be passed to `distro.Run`
with Splunk back-end ingest endpoint URL: `https://ingest.<REALM>.signalfx.com/v2/trace`.

## Splunk specific instrumentations

- [`splunkhttp`](./instrumentation/net/http/splunkhttp)

## License and versioning

The Splunk distribution of OpenTelemetry Go is a
Expand Down
14 changes: 3 additions & 11 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,15 @@

Update go.mod for submodules to depend on the new release which will happen in the next step.

1. Update [CHANGELOG.md](CHANGELOG.md) with new the new release.

2. Run the pre-release script. It creates a branch `pre_release_<new tag>` that will contain all release changes.
1. Run the pre-release script. It creates a branch `pre_release_<new tag>` that will contain all release changes.

```sh
./pre_release.sh -t <new tag>
```

3. Verify the changes.

```sh
git diff
```

This should have changed the version for all modules to be `<new tag>`.
2. Update [CHANGELOG.md](CHANGELOG.md) with new the new release.

4. Push the changes to upstream and create a Pull Request on GitHub.
3. Push the changes to upstream and create a Pull Request on GitHub.

## Tag

Expand Down
7 changes: 3 additions & 4 deletions distro/example_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,9 @@ import (
)

func Example() {
// By default, the Run function will create a Jaeger exporter to a locally
// running Splunk Smart Agent at http://localhost:9080 and will configure
// the B3 context propagation format to be used in extracting and
// injecting trace context.
// By default, the Run function creates a Jaeger Thrift over HTTP exporter
// to http://localhost:14268/api/traces and configures the B3 context
// propagation format to be used in extracting and injecting trace context.
sdk, err := distro.Run()
if err != nil {
panic(err)
Expand Down
7 changes: 3 additions & 4 deletions distro/otel.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@
Package distro provides functionality to quickly setup the OpenTelemetry Go
implementation with useful Splunk defaults.
The default configuration will correctly set the default OpenTelemetry SDK to
propagate traces and export all spans to a locally running Splunk Smart Agent.
Information about the Splunk Smart Agent can be found here
https://docs.signalfx.com/en/latest/apm/apm-getting-started/apm-smart-agent.html
The default configuration sets the default OpenTelemetry SDK to propagate traces
using B3 propagator and export all spans to a locally running
Splunk OpenTelemetry Connector (http://localhost:14268/api/traces).
*/
package distro

Expand Down
2 changes: 1 addition & 1 deletion version.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ package splunkotel // import "github.com/signalfx/splunk-otel-go"

// Version is the current release version of splunk-otel-go in use.
func Version() string {
return "0.3.0"
return "0.4.0"
}

0 comments on commit 8784481

Please sign in to comment.