Skip to main content
Incomplete provenance

3 of 9 files were uploaded without provenance metadata. View details.

GL Observability

gl-observability is a comprehensive SDK for implementing observability in Python applications. It provides easy-to-use wrappers for OpenTelemetry, Sentry, and custom logging handlers with PII redaction capabilities.

Key Features

  • 📊 OpenTelemetry Integration: simplified initialization for tracing.
  • 🛡️ Sentry Support: easy setup for error tracking and performance monitoring.
  • 🕵️ PII Redaction: custom logging handlers to redact PII using Regex or NER (Named Entity Recognition).
  • 🔌 Framework Support: built-in support for FastAPI, Langchain, HTTPX, Requests, OpenAI, Anthropic, Bedrock, and Google Generative AI instrumentation.

Installation

Prerequisites

1. Installation from Pypi

Choose one of the following methods to install the package:

Using pip

pip install gl-observability-binary[all]

Using Poetry

poetry add gl-observability-binary[all]

Using uv

uv add gl-observability-binary[all]

2. Development Installation (Git)

For development purposes, you can install directly from the Git repository:

poetry add "git+ssh://git@github.com/GDP-ADMIN/gl-sdk.git#subdirectory=libs/gl-observability" --extras all

Optional Dependencies

The OTel instrumentor packages for FastAPI, Langchain, HTTPX, Requests, OpenAI, Anthropic, Bedrock, and Google Generative AI are bundled in core. HTTPX, Requests, and all LLM providers (OpenAI, Anthropic, Bedrock, Google Generative AI) are enabled by default — use_httpx and use_requests default to True, and use_llm (which covers all four LLM providers together) defaults to True. Set any flag to False to disable that integration. Langchain and FastAPI follow the same use_* pattern (use_langchain defaults to False; FastAPI runs when fastapi_config is set).

Each instrumentor must run against a compatible version of the library it traces. If you hit a DependencyConflictError at startup, it means your installed library version falls outside the range the bundled instrumentor supports.

The optional extras solve this by pulling in the instrumented library at a version that is known to be compatible with the bundled instrumentor. Use them as a version resolver, not as a feature flag.

Extra Installs
fastapi fastapi at a compatible version
langchain langchain at a compatible version
httpx httpx at a compatible version
requests requests at a compatible version
llm openai, anthropic, boto3, google-generativeai at compatible versions
all All libraries above

Install a specific extra via gl-observability-binary:

# pip
pip install "gl-observability-binary[langchain]"

# Poetry
poetry add "gl-observability-binary[langchain]"

# uv
uv add "gl-observability-binary[langchain]"

Usage

1. Telemetry Initialization

The library uses a unified init_telemetry function that takes a TelemetryConfig object. You can configure it to send traces to OpenTelemetry (OTLP) or Sentry backend. Multiple backend configuration is supported.

OpenTelemetry Configuration

This setup sends traces to an external OTLP collector (e.g., Jaeger, Tempo).

from fastapi import FastAPI
from gl_observability import init_telemetry, TelemetryConfig, OpenTelemetryBackendConfig, FastAPIConfig

# 1. Setup FastAPI Config (optional, if using FastAPI)
app = FastAPI()
fastapi_config = FastAPIConfig(app=app)

# 2. Configure OpenTelemetryBackendConfig
otel_backend_config = OpenTelemetryBackendConfig(
    endpoint="localhost:4318",                  # OTLP endpoint
    use_grpc=False,                             # Use gRPC or HTTP
    headers={"Authorization": "Bearer ..."},    # Optional headers
)

# 3. Configure TelemetryConfig
otel_config = TelemetryConfig(
    attributes={"service.name": "..."},         # Resource attributes
    backend_config=otel_backend_config,         # Backend configuration
    fastapi_config=fastapi_config,              # FastAPI Instrumentation
    use_langchain=True,                         # Enable Langchain instrumentation (default: False)
    # use_httpx, use_requests, and use_llm default to True; set to False to disable.
)

# 4. Initialize Telemetry
init_telemetry(otel_config)

Sentry Configuration

This setup sends errors and traces to Sentry.

from fastapi import FastAPI
from gl_observability import init_telemetry, TelemetryConfig, SentryBackendConfig, FastAPIConfig

# 1. Setup FastAPI Config (optional, if using FastAPI)
app = FastAPI()
fastapi_config = FastAPIConfig(app=app)

# 2. Configure SentryBackendConfig
sentry_backend_config = SentryBackendConfig(
    dsn="https://...",
    environment="...",
    release="...",
    send_default_pii=True,
    disable_sentry_distributed_tracing=False
)

# 3. Configure TelemetryConfig
otel_config = TelemetryConfig(
    attributes={"service.name": "..."},         # Resource attributes
    backend_config=sentry_backend_config,       # Backend configuration
    fastapi_config=fastapi_config,              # FastAPI Instrumentation
    use_langchain=True,                         # Enable Langchain instrumentation (default: False)
    # use_httpx, use_requests, and use_llm default to True; set to False to disable.
)

# 4. Initialize Telemetry
init_telemetry(otel_config)

Multiple Backend Configuration

This setup the OpenTelemetry SDK used for tracing.

from fastapi import FastAPI
from gl_observability import init_telemetry, TelemetryConfig, OpenTelemetryBackendConfig, SentryBackendConfig

jaeger_backend = OpenTelemetryBackendConfig(endpoint="jager...", ...)
init_telemetry(
    TelemetryConfig(
        attributes={"service.name": "..."},
        backend_config=jaeger_backend,
        fastapi_config=fastapi_config,
        use_langchain=True,
        use_httpx=True,
        use_requests=True,
        use_llm=True,
    )
)

langfuse_backend = OpenTelemetryBackendConfig(endpoint="langfuse...", ...)
init_telemetry(
    TelemetryConfig(
        backend_config=langfuse_backend
    )
)

sentry_backend = SentryBackendConfig(dsn="https://...", ...)
init_telemetry(
    TelemetryConfig(
        backend_config=sentry_backend
    )
)

Masking policy and failure reporting

Import the public masking API from gl_observability:

Purpose Public names
Configure scrubbing MaskingConfig, MaskingRule, BuiltInMaskingRule, DenyFields, MaskingMode
Consume failure reports MaskingReport, MaskingFailureGroup, MaskingPatternSource, OnReportHook
Reuse default reporting masking_config_default_on_report
Disable key-based denial EMPTY_DENY_FIELDS
from gl_observability import (
    EMPTY_DENY_FIELDS,
    BuiltInMaskingRule,
    MaskingConfig,
    MaskingMode,
    MaskingRule,
)

masking_config = MaskingConfig(
    rules=(
        BuiltInMaskingRule.EMAIL,
        MaskingRule(name="CUSTOM_ID", pattern=r"customer-\d+"),
    ),
    deny_fields=EMPTY_DENY_FIELDS,
    mode=MaskingMode.FAIL_CLOSED,
)
# Select only the rules the application needs.
email_only = MaskingConfig(rules=(BuiltInMaskingRule.EMAIL,))
# Pass masking_config to TelemetryConfig(masking_config=masking_config, ...).

BuiltInMaskingRule.PRIVATE_KEY_BLOCK masks from a recognized BEGIN … PRIVATE KEY header through the first END … PRIVATE KEY delimiter, regardless of label. If no closing delimiter exists, it masks the rest of that string, including any trailing text or serialized JSON punctuation. Text after a complete block is preserved.

Trace masking is disabled by default (TelemetryConfig(masking_config=None)). MaskingConfig() also defaults to no value rules and no deny fields. Regex matching adds processing cost on the telemetry export path, so select only the rules or deny fields appropriate for your workload and pass the policy explicitly:

from gl_observability import BuiltInMaskingRule, MaskingConfig, TelemetryConfig

config = TelemetryConfig(
    masking_config=MaskingConfig(rules=(BuiltInMaskingRule.EMAIL,)),
    # Add the desired backend_config and other telemetry options.
)

DEFAULT_RULES and DEFAULT_MASKING_CONFIG have been removed. Applications that used those bundles or relied on automatic masking must now choose individual BuiltInMaskingRule constants or custom MaskingRule instances. Rules run in the supplied order, each seeing the previous rule's output; place specific rules before broader patterns when they overlap.

An empty policy skips compilation and installs no masking wrapper or stage: no masking traversal, reports, or FAIL_OPEN warning occurs. Rule-only and deny-only policies remain active, including a deny pattern of "", which matches every attribute key. A deny-only policy does not enable any value rules. Independent backend SDK scrubbing still follows its own configuration.

OTLP masks span names and span attributes, including string sequences. Sentry masks child-span data, op, and description; root contexts.trace.data, op, and description; root contexts.otel.attributes; the transaction name and its contexts.trace.dynamic_sampling_context.transaction copy; and recursive string leaves in transaction request and user regions. Names, operations, and descriptions use the configured value rules only, without attribute-key denial. SQL and URL text copied into descriptions is masked too. The sampling transaction name is scrubbed before Sentry moves it into the envelope header; other sampling metadata remains unchanged.

Both backends preserve resources. OTLP events, links, status and instrumentation metadata, and Sentry other contexts, tags, extra, breadcrumbs and error events are outside this masking stage. Independent SDK scrubbing and consumer hooks may still change those fields.

Behavior change: Matching text in OTel span names and Sentry operations and transaction names is now redacted; Sentry description masking is retained. For example, both data["db.statement"] and its copied description become SELECT * FROM users WHERE email = '[EMAIL]'. An HTTP description becomes GET api.internal /reset?[GENERIC_CREDENTIAL_KV] when its target contains token=abc123456789. Ordinary operation labels remain unchanged, but matching names/operations may change dashboard grouping. These fields use the same FAIL_CLOSED / FAIL_OPEN behavior as other covered values.

Sentry resources previously masked by this component now pass through unchanged. Applications relying on resource masking can sanitize contexts.otel.resource in a consumer before_send_transaction hook supplied through SentryBackendConfig. The hook runs after this component's masking stage. Regex rules still have false positives and false negatives; this coverage does not guarantee removal of every sensitive value.

Deny fields apply only to attribute keys, before value rules, using Python re.match prefix semantics. Matching is case-sensitive unless flags are supplied: email does not deny user.email, while user\.email$ does. Denied values keep the configured deny mask without value scanning. Request/user keys are never deny-checked.

FAIL_CLOSED replaces a value whose scrubbing raises with [Dropped]. FAIL_OPEN returns that value unmasked and is intended for non-production debugging. Both modes continue scrubbing the other values normally. EMPTY_DENY_FIELDS disables key-based denial; value rules still apply.

on_report receives one MaskingReport per item with masking failures. It defaults to masking_config_default_on_report; a custom hook replaces it, and None disables reporting. Hooks must return promptly. A hook exception is caught and diagnostic logging is attempted; if diagnostic logging raises, that exception may propagate. During context-manager exit, it may replace a traversal exception, which remains in the exception context chain. Nested report delivery on the same thread is skipped while a hook runs; masking still applies and later independent reports can be delivered.

Compiled policies, MaskingSession, MaskingPatternError, DROPPED_VALUE, exporters, and chain/traversal helpers are internal implementation details. The supported masking API consists of the package-root imports listed above; deep imports of implementation details have no compatibility guarantee.

2. Logging Handlers

The library provides logging handlers to automatically redact Personally Identifiable Information (PII) from logs.

Regex-based PII Redaction

Uses regular expressions to mask common PII patterns like KTP, NPWP, Phone Numbers, and Email.

import logging
from gl_observability.logs.regex_pii_logger_handler import init_regex_pii_logging_handler

# Initialize the handler for a specific logger
init_regex_pii_logging_handler(
    logger_name="my_application_logger",
    pii_regex_process_enabled=True
)

logger = logging.getLogger("my_application_logger")
logger.info("User email is john.doe@example.com and phone is 08123456789")
# Output: User email is jo******om and phone is 0812******6789

NER-based PII Redaction (Named Entity Recognition)

Uses an external API to perform Named Entity Recognition for more advanced PII detection and redaction.

import logging
from gl_observability.logs.ner_pii_logger_handler import init_ner_pii_logging_handler

# Initialize the handler
init_ner_pii_logging_handler(
    logger_name="my_application_logger",
    api_url="https://your-ner-api.com/anonymize",
    api_field="text",  # The field name in API response containing the redacted text
    pii_ner_process_enabled=True
)

logger = logging.getLogger("my_application_logger")
logger.info("My KTP is 3525011212941001")
# Output will be redacted based on API response

Metadata

Release files for gl-observability-binary 0.3.1.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Incomplete provenance

3 of 9 files were uploaded without provenance metadata.

We recommend further investigation before installing these files. View details.

Built distributions (wheels)

Table of built distributions (wheels) for gl-observability-binary 0.3.1.post1
File Actions
gl_observability_binary-0.3.1.post1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for gl_observability_binary-0.3.1.post1-cp313-cp313-win_amd64.whl
gl_observability_binary-0.3.1.post1-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details for gl_observability_binary-0.3.1.post1-cp313-cp313-manylinux_2_28_x86_64.whl
gl_observability_binary-0.3.1.post1-cp313-cp313-macosx_13_0_arm64.whl CPython 3.13 CPython 3.13 macOS 13.0+ ARM64 Details for gl_observability_binary-0.3.1.post1-cp313-cp313-macosx_13_0_arm64.whl
gl_observability_binary-0.3.1.post1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for gl_observability_binary-0.3.1.post1-cp312-cp312-win_amd64.whl
gl_observability_binary-0.3.1.post1-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details for gl_observability_binary-0.3.1.post1-cp312-cp312-manylinux_2_28_x86_64.whl
gl_observability_binary-0.3.1.post1-cp312-cp312-macosx_13_0_arm64.whl CPython 3.12 CPython 3.12 macOS 13.0+ ARM64 Details for gl_observability_binary-0.3.1.post1-cp312-cp312-macosx_13_0_arm64.whl
gl_observability_binary-0.3.1.post1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for gl_observability_binary-0.3.1.post1-cp311-cp311-win_amd64.whl
gl_observability_binary-0.3.1.post1-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details for gl_observability_binary-0.3.1.post1-cp311-cp311-manylinux_2_28_x86_64.whl
gl_observability_binary-0.3.1.post1-cp311-cp311-macosx_13_0_arm64.whl CPython 3.11 CPython 3.11 macOS 13.0+ ARM64 Details for gl_observability_binary-0.3.1.post1-cp311-cp311-macosx_13_0_arm64.whl

Total release size: 5.4 MB

Release files / gl_observability_binary-0.3.1.post1-cp313-cp313-win_amd64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL gl_observability_binary-0.3.1.post1-cp313-cp313-win_amd64.whl
Size 488.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
35f0dc35aba294aa15b547bff745beeda155060381bad856dd191ffec57d84f2
BLAKE2b-256 checksum
How to use checksums
9279c4b5d5e15b7cca19a4cb11883be95aacd9b7b914e46ad18e7d6bdd20e5fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / gl_observability_binary-0.3.1.post1-cp313-cp313-manylinux_2_28_x86_64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL gl_observability_binary-0.3.1.post1-cp313-cp313-manylinux_2_28_x86_64.whl
Size 807.8 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
30b0b8898fb5a2bbac4ed3bdb10007f279d07ff8d23b0fc1f8216fff6fef0b9b
BLAKE2b-256 checksum
How to use checksums
77e2a134e10a049ea6434969ec1a07a53d2727412f003937fabfafd5f67099c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / gl_observability_binary-0.3.1.post1-cp313-cp313-macosx_13_0_arm64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL gl_observability_binary-0.3.1.post1-cp313-cp313-macosx_13_0_arm64.whl
Size 549.3 kB
Tags CPython 3.13 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
17570b3fa3d820c03863a94e6e8cd0fd01e506d036dfc7e8a2dd64309df3fbcd
BLAKE2b-256 checksum
How to use checksums
5b3bc6bcb42752baa09677597b48306096066b2a377052d6160a9c6f7b7b038c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / gl_observability_binary-0.3.1.post1-cp312-cp312-win_amd64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL gl_observability_binary-0.3.1.post1-cp312-cp312-win_amd64.whl
Size 488.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
fb22725c12a44f4fbee59ce521492c1620ad5de1893c90d45ceffef3e3f3b3c1
BLAKE2b-256 checksum
How to use checksums
10ea56915ac81fc97140064dd02ab62c37fb31f46a0de824eb36da48504313ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / gl_observability_binary-0.3.1.post1-cp312-cp312-manylinux_2_28_x86_64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL gl_observability_binary-0.3.1.post1-cp312-cp312-manylinux_2_28_x86_64.whl
Size 803.1 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1e750fedc981949096cd0e50210ece905656699553a00c8f5de0c21bd7b32ed8
BLAKE2b-256 checksum
How to use checksums
e4efbecc7713b0d557c3b05080e326fda3399e7ed46012a7dec3adb269a0abac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / gl_observability_binary-0.3.1.post1-cp312-cp312-macosx_13_0_arm64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL gl_observability_binary-0.3.1.post1-cp312-cp312-macosx_13_0_arm64.whl
Size 539.0 kB
Tags CPython 3.12 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
e5b5ce347bc909c90695c0a025d8d2afcbd7066731233139a13fef44d8f6f35a
BLAKE2b-256 checksum
How to use checksums
75d957ccf6ff969a5574d08abf08dee2e9332eea9e14f4dc76684fa014168d5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / gl_observability_binary-0.3.1.post1-cp311-cp311-win_amd64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL gl_observability_binary-0.3.1.post1-cp311-cp311-win_amd64.whl
Size 506.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
e4010ada87ad39440307ab181728d3903fa1e6aef83a53919122533d0f4ba44f
BLAKE2b-256 checksum
How to use checksums
27485f51e82e1980be196ea75d8ada09c474290d4486e46547e54f7db477cf05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / gl_observability_binary-0.3.1.post1-cp311-cp311-manylinux_2_28_x86_64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.

We recommend further investigation before installing this file. View details.

Download URL gl_observability_binary-0.3.1.post1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 723.3 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8b1962ea4c39106eed3c9229101940143c71b6cb9f6624a9590167092168d517
BLAKE2b-256 checksum
How to use checksums
9d371f4644eabae57011bd236ec521741af39fcb4655a3eaf5857398b4dee446
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / gl_observability_binary-0.3.1.post1-cp311-cp311-macosx_13_0_arm64.whl

Incomplete provenance

This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.

We recommend further investigation before installing this file. View details.

Download URL gl_observability_binary-0.3.1.post1-cp311-cp311-macosx_13_0_arm64.whl
Size 531.0 kB
Tags CPython 3.11 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
4abef4cb452f82bf9b676e8717364da7d324a907289b66bdaddf568633ec4f8a
BLAKE2b-256 checksum
How to use checksums
a6803d36b006a8540f584b02943f60f14b47021a442aab2f1b8fafa76f9329a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Security for gl-observability-binary 0.3.1.post1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Incomplete provenance

3 of 9 files were uploaded without provenance metadata.

Files with provenance 6 / 9
Files without provenance 3 / 9
Select from 9 files

Attestation for gl_observability_binary-0.3.1.post1-cp313-cp313-win_amd64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page