colibriproject-dev/colibri-sdk-go
colibriproject-dev/colibri-sdk-go has 81 GitHub stars and 16 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-11 13:39 UTC. Last push 2026-11-04.
Comment ces chiffres sont mesurés
Colibri SDK for Google Golang Stack
Progression mesurée des étoiles
- in 24h
- +1
- in 7 days
- Mise à jour retardée
- in 15 days
- Mise à jour retardée
- in 1 month
- Mise à jour retardée
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
README.md
OriginalAvailable languages: English | Português
colibri-sdk-go
A comprehensive library for building Go applications with support for multiple services and features.
Table of Contents
Introduction
colibri-sdk-go is a set of tools and libraries designed to make it easier to develop robust and scalable Go applications. The SDK provides abstractions and implementations for a variety of common services and features, allowing developers to focus on their application’s business logic.
Project Status
Actively under development.
Features
colibri-sdk-go offers the following features:
Base
- cloud: Cloud service integrations
- config: Configuration management for different environments
- logging: Flexible and extensible logging system
- monitoring: Integration with monitoring and observability tools
- observer: Observer pattern implementation for graceful shutdown
- security: Security-related functionality
- test: Testing utilities
- transaction: Transaction management
- types: Common types used across the library
- validator: Data validation utilities
Database
- Cache: Integration with cache databases (such as Redis)
- SQL: Access and management of SQL databases
Web
- REST Client: Client for consuming REST APIs
- REST Server: Server for building REST APIs
Other
- Messaging: Messaging services
- Storage: Storage services
- Dependency Injection: Dependency injection system
Installation
To install colibri-sdk-go, use go get:
go get github.com/colibriproject-dev/colibri-sdk-go
Usage
To initialize the SDK in your application:
package main
import (
"github.com/colibriproject-dev/colibri-sdk-go"
)
func main() {
// Initialize the SDK
colibri.InitializeApp()
// Your application here
}
Observability
The SDK exports OpenTelemetry traces and metrics. Traces and metrics are independent
signals: metrics are enabled by default and scrapable on /metrics with no
configuration, while traces need an OTLP collector.
| Variable | Required | Description |
|---|---|---|
OTEL_EXPORTER_OTLP_ENDPOINT |
No | OTLP collector endpoint — accepts host:port or full URL (e.g. http://localhost:4318). Enables traces and the OTLP metric exporter |
OTEL_EXPORTER_OTLP_HEADERS |
No | Comma-separated key=value headers (e.g. api-key=secret,x-env=prod) |
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT |
No | Override endpoint for the metrics signal only. Defaults to OTEL_EXPORTER_OTLP_ENDPOINT |
OTEL_SERVICE_NAME |
No | Service name reported to the backend. Defaults to APP_NAME |
OTEL_TRACES_ENABLED |
No | Kill switch for traces. Default true — traces still require a collector endpoint |
OTEL_METRICS_ENABLED |
No | Kill switch for metrics, covering both readers. Default true |
OTEL_METRICS_PROMETHEUS_ENABLED |
No | Exposes metrics on /metrics through the Prometheus registry. Default true |
Signal combinations
| Configuration | Traces | /metrics |
OTLP metrics |
|---|---|---|---|
| Nothing set (default) | off | on | off |
OTEL_EXPORTER_OTLP_ENDPOINT set |
on | on | on |
Endpoint set, OTEL_METRICS_PROMETHEUS_ENABLED=false |
on | off | on |
Endpoint set, OTEL_TRACES_ENABLED=false |
off | on | on |
OTEL_METRICS_ENABLED=false and no endpoint |
off | off | off |
With at least one signal enabled the SDK automatically:
- Emits HTTP server metrics (
http.server.request.duration, …) from its own middleware, and HTTP client metrics (http.client.request.duration) viaotelhttp - Emits SQL call and connection pool metrics (
db.sql.*) viaotelsql, and Redis pool metrics (db.client.connections.*) viaredisotel - Emits messaging, storage and recovered-panic metrics from the SDK modules
- Emits Go runtime metrics (memory, GC, goroutines) via
opentelemetry-contrib/instrumentation/runtime - Enriches every resource with
service.name,service.version, andservice.instance.id
A disabled signal gets a noop provider, so instrumented code keeps working and simply reports nothing.
Note:
OTEL_EXPORTER_OTLP_ENDPOINTshould be the base endpoint without signal-specific paths. The SDK appends/v1/tracesand/v1/metricsautomatically.
Metrics
The metrics the SDK emits, the naming, unit and cardinality conventions, and how to record
business metrics — building Attrs once, observable gauges, testing with
monitoringtest — are documented in
docs/observability/metrics.md.
Dashboards and alerts
Grafana dashboards (HTTP, messaging, data stores, Go runtime) and Prometheus alert rules for the metrics above ship in observability/, versioned with the code that emits the metrics. CI fails when one of them queries a metric the SDK does not emit.
Contributing
Contributions are welcome! Please read the Code of Conduct before contributing.
To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
Explorer des projets similaires
Asabeneh/30-Days-Of-Python
Le défi de programmation 30 Days of Python est un guide pas à pas pour apprendre le langage de programmation Python en 30 jours. Ce défi peut prendre plus de 100 jours. Avancez à votre rythme. Ces vidéos peuvent aussi vous aider : https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,560 étoilesgrafana/grafana
Plateforme ouverte et composable d’observabilité et de visualisation de données. Visualise les métriques, les journaux et les traces issus de plusieurs sources, comme Prometheus, Loki, Elasticsearch, InfluxDB, Postgres et bien d’autres.
77,830 étoilesredis/redis
Pour les développeurs qui créent des applications en temps réel pilotées par les données, Redis est le cache, le serveur de structures de données et le moteur de requêtes documentaires et vectorielles préféré, le plus rapide et le plus riche en fonctionnalités.
77,395 étoilesapache/superset
Apache Superset est une plateforme de visualisation et d'exploration de données.
75,473 étoiles