Namespaces
Namespaces are used to group metrics, providing a logical organization and enabling the attachment of constant labels (like version and commit) to all metrics within a namespace.
Example
// Namespace is a convenient way to group metrics.
// The metrics "requests" and "errors" will all be labeled with namespace="myapp"
ns := NewNamespace("myapp")
requests := ns.NewCounter("requests")
errors := ns.NewCounter("errors")
Usage
Namespaces are created using the NewNamespace
function.
Source: namespace.go
The following example shows how to create a namespace called “myapp”.
// Namespace is a convenient way to group metrics.
// The metrics "requests" and "errors" will all be labeled with namespace="myapp"
ns := NewNamespace("myapp")
requests := ns.NewCounter("requests")
errors := ns.NewCounter("errors")
Source: namespace.go
Namespaces can be used to group metrics that belong to the same application, service, or component.
Source: namespace.go
Options
The NewNamespace
function also accepts an optional opts
argument.
Source: namespace.go
The opts
argument can be used to specify additional options, such as:
- Labels: A map of key-value pairs that will be attached to all metrics within the namespace.
- Prefix: A string that will be prepended to all metric names within the namespace.
Source: namespace.go
Examples
Example: Adding Labels
// Namespace is a convenient way to group metrics.
// The metrics "requests" and "errors" will all be labeled with namespace="myapp", version="1.0"
ns := NewNamespace("myapp", WithLabels(map[string]string{"version": "1.0"}))
requests := ns.NewCounter("requests")
errors := ns.NewCounter("errors")
Source: namespace.go
Example: Adding Prefix
// Namespace is a convenient way to group metrics.
// The metrics "requests" and "errors" will all be labeled with namespace="myapp" and have names "myapp.requests" and "myapp.errors".
ns := NewNamespace("myapp", WithPrefix("myapp"))
requests := ns.NewCounter("requests")
errors := ns.NewCounter("errors")
Source: namespace.go
Notes
Namespaces can be nested to create a hierarchical structure for metrics.
Source: namespace.go
Namespaces can be used to group metrics for different purposes, such as:
- Application: Group metrics for a specific application.
- Service: Group metrics for a specific service within an application.
- Component: Group metrics for a specific component within a service.
Source: namespace.go
Namespaces are a powerful tool for organizing and labeling metrics.
Source: namespace.go