Commit Graph

58 Commits

Author SHA1 Message Date
Bryan Naegele e1e2272a93
Update publish-mix-hex-release.yml 2024-02-04 22:12:31 -07:00
Bryan Naegele e84ef9375c
Update publish-mix-hex-release.yml 2024-02-04 20:29:30 -07:00
Bryan Naegele acaf7fba86
Update publish-mix-hex-release.yml 2024-02-04 20:23:36 -07:00
Bryan Naegele 0841b43e9a
Update publish-mix-hex-release.yml 2024-02-04 20:18:48 -07:00
Bryan Naegele ab933e2528
Update publish-mix-hex-release.yml 2024-02-04 20:16:38 -07:00
Bryan Naegele a5ab74b82d
Update publish-mix-hex-release.yml 2024-02-04 20:12:22 -07:00
Bryan Naegele 08a86af72a
Update publish-mix-hex-release.yml 2024-02-04 19:46:16 -07:00
Bryan Naegele 00ba108990
Update labeler.yml 2024-02-04 18:50:01 -07:00
Bryan Naegele 7f130017b2
Update publish-mix-hex-release.yml 2024-02-04 18:43:27 -07:00
Bryan Naegele 889541b61e
Update publish-mix-hex-release.yml 2024-02-04 18:19:56 -07:00
Bryan Naegele a57863a095
Update publish-mix-hex-release.yml 2024-02-04 18:05:20 -07:00
Bryan Naegele 066e3e92e1
Update publish-mix-hex-release.yml 2024-02-04 17:59:52 -07:00
Bryan Naegele 49f866b603
Update publish-mix-hex-release.yml 2024-02-04 17:57:52 -07:00
Bryan Naegele 6da87eff56
Update publish-mix-hex-release.yml 2024-02-04 17:53:16 -07:00
Bryan Naegele 37c7f32562
Update publish-mix-hex-release.yml 2024-02-04 17:34:37 -07:00
renovate[bot] ad037a765e
chore(deps): update erlef/setup-beam digest to 8b9cac4 (#265)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-04 17:23:13 -07:00
renovate[bot] 994de80d26
chore(deps): update peter-evans/create-pull-request action to v6 (#266)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-04 17:21:03 -07:00
renovate[bot] d140cb5b9c
chore(deps): update release-drafter/release-drafter action to v6 (#263)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-04 17:19:19 -07:00
Bryan Naegele bf6adb78e8
Hex publishing workflow (#250)
* Add Hex publishing manual workflow
2024-02-04 17:18:14 -07:00
renovate[bot] 8f6a466666
chore(deps): update dependency finch to ~> 0.17 (#252)
* chore(deps): update dependency finch to ~> 0.17

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bryan Naegele <bryannaegele@users.noreply.github.com>
2024-01-17 11:40:59 -07:00
renovate[bot] 0b22da6fef
chore(deps): update actions/cache action to v4 (#255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 10:08:42 -07:00
Bryan Naegele c03229de5f
Update labeler.yml 2023-12-11 10:37:00 -07:00
renovate[bot] 7a8f87d5bb
chore(deps): update dependency ubuntu to v22 (#241)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 09:20:36 -07:00
renovate[bot] 778ebf6ab3
chore(deps): update actions/checkout action to v4 (#238)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 22:09:50 -07:00
renovate[bot] 8bd3cc8c7a
chore(deps): update circleci/postgres docker tag to v13.5 (#225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 21:38:34 -07:00
renovate[bot] f3c25630a6
chore(deps): update actions/cache action to v3 (#236)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 21:33:23 -07:00
Bryan Naegele 7d50d86b95
Revert "chore: run propagator dialyzer on CI (#202)" (#224)
This reverts commit 97d13c39b7.
2023-11-09 18:28:51 -07:00
João Thallis 97d13c39b7
chore: run propagator dialyzer on CI (#202)
* chore: run propagator dialyzer on CI

* Format using Elixir 1.15.6

* Support only Elixir ~> 1.12

It is necessary because :dialyxir requires Elixir ">= 1.12.0"

---------

Co-authored-by: Tristan Sloughter <t@crashfast.com>
2023-11-09 02:26:29 -07:00
Bryan Naegele 02202fb780
Add strict version type for setup-beam (#206) 2023-09-16 09:17:35 -06:00
Bryan Naegele 6a143eeccf
Update release-drafter.yml (#203) 2023-09-06 03:59:09 -06:00
Bryan Naegele 018efed93a
Release drafting (#200) 2023-09-05 09:38:49 -06:00
Tom Taylor 17d31cc594
Improve test matrix and add support for Elixir 1.15 and OTP 26 (#188)
* Use test matrix from file

* Only check formatting on specific Elixir version

* Use latest patch version of each Elixir/OTP release in test matrix

* Test on Elixir 1.15 and OTP 26

* Run formatter on opentelemetry_httpoison

* Run formatter on opentelemetry_phoenix

* Run formatter on opentelemetry_tesla

* Fix building opentelemetry_ecto on Elixir 1.15

Upgraded deps to fix ssl_verify_fun not compiling

* Fix building opentelemetry_dataloader on Elixir 1.15

Upgraded deps to fix ssl_verify_fun and ecto_sql not compiling

* Upgrade opentelemetry_finch to build on Elixir 1.15

* Upgrade opentelemetry_httpoison deps to build on 1.15

* Upgrade opentelemetry_nebulex to build on Elixir 1.15

* Upgrade opentelemetry_oban to build on Elixir 1.15

* Upgrade opentelemetry_phoenix deps to build on 1.15

* Upgrade opentelemetry_redix deps to build on 1.15

* Fix warning about <> being ambiguous

* Fix assertion on attributes keys

These are always atoms, not strings.

* Upgrade ssl_verify_fun in opentelemetry_telemetry

* Deterministically sort keys before asserting in tests

* Upgrade opentelemetry_process_propogator to build on Elixir 1.15

* Run mix format on opentelemetry_process_propogator

* Assert keys are atoms, not strings

* Use matrix.os to define runs-on parameter

* Pin test matrix to specific OTP + Elixir versions

* Run formatter on telemetry and process_propagator

* Run formatter over opentelemetry_phoenix

---------

Co-authored-by: Tristan Sloughter <t@crashfast.com>
2023-08-25 14:11:23 -06:00
Alberto Sartori 26c68a0f88
Opentelemetry instrumentation http (#186)
* Add opentelemetry_instrumentation_http utility library

* Update utilities/opentelemetry_instrumentation_http/src/opentelemetry_instrumentation_http.erl

Co-authored-by: Tristan Sloughter <t@crashfast.com>

* Fix dialyzer

* Update changelog

---------

Co-authored-by: Tristan Sloughter <t@crashfast.com>
2023-07-16 14:04:13 -06:00
Cristiano Piemontese 0cc8c760d0
Add telepoison (#148)
* add telepoison

* rename

* rename file too, duh

* rename test file

* port updates

* add standard workflow
2023-06-04 08:23:03 -06:00
Maarten van Vliet 1de26cce1a
Add Dataloader instrumentation library (#137)
* Add Dataloader instrumentation library

* Move call to set context to @run_start event

---------

Co-authored-by: Tristan Sloughter <t@crashfast.com>
2023-04-05 10:34:49 -06:00
Bryan Naegele de17c31194
OpentelemetryReq plugin (#160)
* OpentelemetryReq plugin

* Split span handling

* version bump

* Remove set

* Unused var

* Set parent ctx back on completion
2023-03-31 09:51:27 -06:00
Andrew Rosa dfed96874f
Add Nebulex instrumentation library (#83)
Add instrumentation for Nebulex, a distributed cache library. This
library provides solid telemetry support for this initial
implementation.

Caching implementation is mostly based on in-memory storage (like ETS)
and RPC calls for distribution (via OTP libraries, like :erpc). AFAICT,
there is not much specifics for how to translate into Semantic
Attributes: those caches are not quite a DB, except maybe for the one
which implements the storage; the RPC can't be reliably captured
either.

Given the above constraints, this initial implementation instruments the
library via custom attributes (namespaced as `nebulex.*`). It's not 100%
clear the behaviour of OTel for actual distributed caches - from my
tests, that may create some orphan spans. I think that's fine as first
release.

Nebulex follow the patterns of Ecto, so this instrumentation follows a
similar pattern of OpentelemetryEcto. It does include a `setup_all/1`
function for convenience, that leverages the :init events Nebulex emit
on process start.

Co-authored-by: Tristan Sloughter <t@crashfast.com>
2022-12-14 17:38:18 -07:00
Bryan Naegele f5b138f297
Bryannaegele patch 1 (#135)
* Update elixir.yml

* Update erlang.yml (#134)
2022-11-25 14:35:36 -07:00
Bryan Naegele 62219a28f1
Update elixir.yml 2022-11-25 14:31:43 -07:00
Bryan Naegele 0e6a776ffb
Fix CI errors, update GHA deps, update versions (#125)
* Fix CI errors, update GHA deps, update versions

* output syntax

* remove OTP 22 tests

* set concurrency to cancel in progress

* whitespace

* incompatible vsns and failed test

* Try pulling excludes out

* Escaping

* Just drop < 1.13 until this can move to workflows

* quote
2022-11-15 16:22:28 -07:00
Bryan Naegele a71bf882cc
Fix Tesla's test nam (#113) 2022-11-15 12:12:27 -07:00
John Mauricio Carmona E 4358c75b99
finch-instrumentation (#115)
* finch-instrumentation

* Span attributes update

* Readme update

* Readme update
2022-11-09 12:27:40 -07:00
Bryan Naegele d5bae4d624
Update elixir.yml 2022-09-02 13:42:19 -06:00
Ricardo Paiva e8d1462f46
Add otel tesla library (#90)
* Add Tesla HTTP client instrumentation library

* Update workflows configuration

* Update labeler.yml

* Update CODEOWNERS

* Add LICENSE file

Co-authored-by: Bryan Naegele <bryannaegele@users.noreply.github.com>
2022-08-25 12:47:59 -06:00
Ygor Castor 59664d87c8
Implemented AWS X-Ray TraceId Generator (#95) 2022-07-21 11:40:47 -06:00
Bryan Naegele 7a5802cb14
Process propagator library (#64)
* Process propagator library

* Fix Elixir API

* CI files

* Update propagators/opentelemetry_process_propagator/lib/opentelemetry_process_propagator.ex

Co-authored-by: Andrew Rosa <dev@andrewhr.io>

* Update propagators/opentelemetry_process_propagator/lib/opentelemetry_process_propagator.ex

Co-authored-by: Andrew Rosa <dev@andrewhr.io>

* format

Co-authored-by: Andrew Rosa <dev@andrewhr.io>
2022-03-23 13:02:28 -06:00
Andrew Rosa f281a90f3c
Update CI config for opentelemetry_redix (#58)
Following the pattern on [this PR][1]

[1]: https://github.com/open-telemetry/opentelemetry-erlang-contrib/pull/55/files#diff-567a3fdf49d6f0f0119dda6d1c098fcb5ee3785ee956481b3daaf5a2f246076f

Co-authored-by: Bryan Naegele <bryannaegele@users.noreply.github.com>
2022-01-04 22:34:06 -07:00
Andrew Rosa 50ed370444
Add OpenTelemetry integration to Redix (#29)
Initial approach follows Ecto instrumentation, recording spans for all
Redix `[:redix, :pipeline, :stop]` events.

The command sanitization is inspired-by and adapted from [Java
instrumentation][1], from where I've also copied the actual commands and
what configuration should they follow.

Network attributes are tracked via a "sidecar" process, which keeps
track of connection attributes also via `telemetry`. This extra bit of
bookkeeping is needed as command events doesn't include that piece of
information, unfortunately.

[1]: b2bc41453b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/db/RedisCommandSanitizer.java
2022-01-04 14:39:19 -07:00
Bryan Naegele 4f087f85a5
Add elixir 1.13 to matrix; drop OTP 21 support (#55)
* Add elixir 1.13 to matrix; drop OTP 21 support
2021-12-28 14:14:26 -07:00
Indrek Juhkam eecb238cff
Add opentelemetry integration to Oban (#6)
By default a new trace is automatically started when a job is processed
by monitoring these events:
* `[:oban, :job, :start]` — at the point a job is fetched from the database and will execute
* `[:oban, :job, :stop]` — after a job succeeds and the success is recorded in the database
* `[:oban, :job, :exception]` — after a job fails and the failure is recorded in the database

To also record a span when a job is created and to link traces together
`Oban.insert/2` has to be replaced by `OpentelemetryOban.insert/2`.

Before:

```elixir
  %{id: 1, in_the: "business", of_doing: "business"}
  |> MyApp.Business.new()
  |> Oban.insert()
```

After:

```elixir
  %{id: 1, in_the: "business", of_doing: "business"}
  |> MyApp.Business.new()
  |> OpentelemetryOban.insert()
```

Co-authored-by: Tristan Sloughter <t@crashfast.com>
2021-12-08 08:41:36 -07:00