Compare commits
4 Commits
7dc8f088c9
...
v3.10.82
| Author | SHA1 | Date | |
|---|---|---|---|
| 1a9236caad | |||
| 6c68d39081 | |||
| 35e62fbeb0 | |||
| 00b3ceb468 |
@@ -44,6 +44,20 @@ var (
|
|||||||
ErrGatewayTimeout = &Error{Code: 504}
|
ErrGatewayTimeout = &Error{Code: 504}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const ProblemContentType = "application/problem+json"
|
||||||
|
|
||||||
|
type Problem struct {
|
||||||
|
Type string `json:"type,omitempty"`
|
||||||
|
Title string `json:"title,omitempty"`
|
||||||
|
Detail string `json:"detail,omitempty"`
|
||||||
|
Instance string `json:"instance,omitempty"`
|
||||||
|
Errors []struct {
|
||||||
|
Title string `json:"title,omitempty"`
|
||||||
|
Detail string `json:"detail,omitempty"`
|
||||||
|
} `json:"errors,omitempty"`
|
||||||
|
Status int `json:"status,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
// Error type
|
// Error type
|
||||||
type Error struct {
|
type Error struct {
|
||||||
// ID holds error id or service, usually someting like my_service or id
|
// ID holds error id or service, usually someting like my_service or id
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// Package logger provides a log interface
|
// Package logger provides a log interface
|
||||||
package logger // import "go.unistack.org/micro/v3/logger"
|
package logger
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ func NewOptions(opts ...Option) Options {
|
|||||||
return options
|
return options
|
||||||
}
|
}
|
||||||
|
|
||||||
// WithContextAttrFuncs appends default funcs for the context arrts filler
|
// WithContextAttrFuncs appends default funcs for the context attrs filler
|
||||||
func WithContextAttrFuncs(fncs ...ContextAttrFunc) Option {
|
func WithContextAttrFuncs(fncs ...ContextAttrFunc) Option {
|
||||||
return func(o *Options) {
|
return func(o *Options) {
|
||||||
o.ContextAttrFuncs = append(o.ContextAttrFuncs, fncs...)
|
o.ContextAttrFuncs = append(o.ContextAttrFuncs, fncs...)
|
||||||
@@ -137,6 +137,13 @@ func WithName(n string) Option {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithMeter sets the meter
|
||||||
|
func WithMeter(m meter.Meter) Option {
|
||||||
|
return func(o *Options) {
|
||||||
|
o.Meter = m
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// WithTimeFunc sets the func to obtain current time
|
// WithTimeFunc sets the func to obtain current time
|
||||||
func WithTimeFunc(fn func() time.Time) Option {
|
func WithTimeFunc(fn func() time.Time) Option {
|
||||||
return func(o *Options) {
|
return func(o *Options) {
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
package semconv
|
|
||||||
|
|
||||||
var (
|
|
||||||
// CacheRequestDurationSeconds specifies meter metric name
|
|
||||||
CacheRequestDurationSeconds = "cache_request_duration_seconds"
|
|
||||||
// ClientRequestLatencyMicroseconds specifies meter metric name
|
|
||||||
CacheRequestLatencyMicroseconds = "cache_request_latency_microseconds"
|
|
||||||
// CacheRequestTotal specifies meter metric name
|
|
||||||
CacheRequestTotal = "cache_request_total"
|
|
||||||
// CacheRequestInflight specifies meter metric name
|
|
||||||
CacheRequestInflight = "cache_request_inflight"
|
|
||||||
)
|
|
||||||
12
semconv/store.go
Normal file
12
semconv/store.go
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package semconv
|
||||||
|
|
||||||
|
var (
|
||||||
|
// StoreRequestDurationSeconds specifies meter metric name
|
||||||
|
StoreRequestDurationSeconds = "store_request_duration_seconds"
|
||||||
|
// ClientRequestLatencyMicroseconds specifies meter metric name
|
||||||
|
StoreRequestLatencyMicroseconds = "store_request_latency_microseconds"
|
||||||
|
// StoreRequestTotal specifies meter metric name
|
||||||
|
StoreRequestTotal = "store_request_total"
|
||||||
|
// StoreRequestInflight specifies meter metric name
|
||||||
|
StoreRequestInflight = "store_request_inflight"
|
||||||
|
)
|
||||||
@@ -140,6 +140,8 @@ type Options struct {
|
|||||||
Logger logger.Logger
|
Logger logger.Logger
|
||||||
// Name of the tracer
|
// Name of the tracer
|
||||||
Name string
|
Name string
|
||||||
|
// ContextAttrFuncs contains funcs that provides tracing
|
||||||
|
ContextAttrFuncs []ContextAttrFunc
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option func signature
|
// Option func signature
|
||||||
@@ -176,8 +178,9 @@ func NewSpanOptions(opts ...SpanOption) SpanOptions {
|
|||||||
// NewOptions returns default options
|
// NewOptions returns default options
|
||||||
func NewOptions(opts ...Option) Options {
|
func NewOptions(opts ...Option) Options {
|
||||||
options := Options{
|
options := Options{
|
||||||
Logger: logger.DefaultLogger,
|
Logger: logger.DefaultLogger,
|
||||||
Context: context.Background(),
|
Context: context.Background(),
|
||||||
|
ContextAttrFuncs: DefaultContextAttrFuncs,
|
||||||
}
|
}
|
||||||
for _, o := range opts {
|
for _, o := range opts {
|
||||||
o(&options)
|
o(&options)
|
||||||
|
|||||||
@@ -21,8 +21,11 @@ var (
|
|||||||
"HealthService.Ready",
|
"HealthService.Ready",
|
||||||
"HealthService.Version",
|
"HealthService.Version",
|
||||||
}
|
}
|
||||||
|
DefaultContextAttrFuncs []ContextAttrFunc
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type ContextAttrFunc func(ctx context.Context) []interface{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
logger.DefaultContextAttrFuncs = append(logger.DefaultContextAttrFuncs,
|
logger.DefaultContextAttrFuncs = append(logger.DefaultContextAttrFuncs,
|
||||||
func(ctx context.Context) []interface{} {
|
func(ctx context.Context) []interface{} {
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package pool
|
package pool
|
||||||
|
|
||||||
import "sync"
|
import (
|
||||||
|
"bytes"
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
type Pool[T any] struct {
|
type Pool[T any] struct {
|
||||||
p *sync.Pool
|
p *sync.Pool
|
||||||
@@ -23,3 +26,11 @@ func (p Pool[T]) Get() T {
|
|||||||
func (p Pool[T]) Put(t T) {
|
func (p Pool[T]) Put(t T) {
|
||||||
p.p.Put(t)
|
p.p.Put(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewBytePool(size int) Pool[T] {
|
||||||
|
return NewPool(func() []byte { return make([]byte, size) })
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewBytesPool() Pool[T] {
|
||||||
|
return NewPool(func() *bytes.Buffer { return bytes.NewBuffer(nil) })
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user