~ruther/guix-local

624f4e2612e98c91c2a0a20f154724e320dd6e4a — Sharlatan Hellseher 11 months ago c9359ae
gnu: Add go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp.

* gnu/packages/golang-web.scm (go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp): New variable.

Change-Id: I488fd518a0d1489b5721489037e0d4ba2f9b05aa
1 files changed, 62 insertions(+), 0 deletions(-)

M gnu/packages/golang-web.scm
M gnu/packages/golang-web.scm => gnu/packages/golang-web.scm +62 -0
@@ 11833,6 11833,68 @@ go.opentelemetry.io/otel/trace.")
By default the telemetry is sent to @@url{https://localhost:4317}.")
    (license license:asl2.0)))

(define-public go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp
  (package
    (name "go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp")
    (version "1.36.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/open-telemetry/opentelemetry-go")
             (commit (go-version->git-ref version
                                          #:subdir "exporters/otlp/otlptrace/otlptracehttp"))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1kvfbqc56p1h9rh9cvgn37ya6k10613r0f2rhjiwrrkgs2mszk30"))
       (modules '((guix build utils)
                  (ice-9 ftw)
                  (srfi srfi-26)))
       (snippet
        #~(begin
            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
            ;; Consider to implement it as re-usable procedure in
            ;; guix/build/utils or guix/build-system/go.
            (define (delete-all-but directory . preserve)
              (define (directory? x)
                (and=> (stat x #f)
                       (compose (cut eq? 'directory <>) stat:type)))
              (with-directory-excursion directory
                (let* ((pred
                        (negate (cut member <> (append '("." "..") preserve))))
                       (items (scandir "." pred)))
                  (for-each (lambda (item)
                              (if (directory? item)
                                  (delete-file-recursively item)
                                  (delete-file item)))
                            items))))
            (delete-all-but "exporters/otlp/otlptrace" "otlptracehttp")
            (delete-all-but "." "exporters")))))
    (build-system go-build-system)
    (arguments
     (list
      ;; TODO: Enable when all missing inputs are availalbe, use as source
      ;; only package for Boxo.
      #:skip-build? #t
      #:tests? #f
      #:import-path
      "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
      #:unpack-path "go.opentelemetry.io/otel"))
    (native-inputs
     (list go-github-com-stretchr-testify))
    (propagated-inputs
     (list go-github-com-cenkalti-backoff-v5
           go-go-opentelemetry-io-proto-otlp
           ;; go-google-golang-org-grpc
           go-google-golang-org-protobuf))
    (home-page "https://go.opentelemetry.io/otel")
    (synopsis "OTLP Trace HTTP Exporter")
    (description
     "Package otlptracehttp provides an OTLP span exporter using HTTP with
protobuf payloads.  By default the telemetry is sent to
@@url{https://localhost:4318/v1/traces}.")
    (license license:asl2.0)))

(define-public go-go-opentelemetry-io-otel-exporters-stdout-stdouttrace
  (package
    (name "go-go-opentelemetry-io-otel-exporters-stdout-stdouttrace")