hs-opentelemetry-instrumentation-gogol: OpenTelemetry instrumentation for the Gogol Google Cloud SDK

[ bsd3, google-cloud, library, monitoring, observability, opentelemetry, telemetry ] [ Propose Tags ] [ Report a vulnerability ]

Tracing wrappers for Gogol Google Cloud SDK calls. Creates spans per Google API call with RPC semantic convention attributes.


[Skip to Readme]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 1.0.0.0
Change log ChangeLog.md
Dependencies base (>=4.7 && <5), bytestring, exceptions, gogol-core (>=1.0 && <1.1), hs-opentelemetry-api (>=1.0 && <1.1), hs-opentelemetry-semantic-conventions (>=1.40 && <2), http-types, resourcet, text, unordered-containers [details]
License BSD-3-Clause
Copyright 2024 Ian Duncan, Mercury Technologies
Author Ian Duncan, Jade Lovelace
Maintainer ian@iankduncan.com
Uploaded by IanDuncan at 2026-05-29T14:41:38Z
Category OpenTelemetry, Telemetry, Monitoring, Observability, Google Cloud
Home page https://github.com/iand675/hs-opentelemetry#readme
Bug tracker https://github.com/iand675/hs-opentelemetry/issues
Source repo head: git clone https://github.com/iand675/hs-opentelemetry
Distributions
Downloads 4 total (4 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for hs-opentelemetry-instrumentation-gogol-1.0.0.0

[back to package description]

hs-opentelemetry-instrumentation-gogol

hs-opentelemetry-instrumentation-gogol

OpenTelemetry instrumentation for the Gogol Google Cloud SDK.

Usage

Gogol does not have a hooks/middleware API, so instrumentation is provided as wrapper functions. Replace send with tracedSend (or sendEither with tracedSendEither):

import Gogol
import OpenTelemetry.Instrumentation.Gogol (tracedSend)

main :: IO ()
main = do
  tracer <- ...
  env <- newEnv
  runResourceT . runGoogle env $ do
    -- Instead of: send (newObjectsGet bucket object)
    result <- tracedSend tracer send (newObjectsGet bucket object)
    ...

Attributes

Each span includes:

Attribute Example
rpc.system gcp-api
rpc.service storage
rpc.method ObjectsGet
server.address storage.googleapis.com
cloud.provider gcp
error.type (on failure)
http.response.status_code (on failure)

Design

Because Gogol runs in a Google monad (essentially ReaderT (Env s) (ResourceT IO)) without hook points, the wrappers take the send function as a parameter. This avoids depending on the full gogol package (only gogol-core) and works with any send-like function.