Compare commits
8 Commits
3eebfb5b11
...
v3.10.85
| Author | SHA1 | Date | |
|---|---|---|---|
| 3ace7657dc | |||
| 53b40617e2 | |||
| 1a9236caad | |||
| 6c68d39081 | |||
| 35e62fbeb0 | |||
| 00b3ceb468 | |||
| 7dc8f088c9 | |||
| c65afcea1b |
@@ -373,6 +373,10 @@ func (m *memoryEvent) SetError(err error) {
|
|||||||
m.err = err
|
m.err = err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *memoryEvent) Context() context.Context {
|
||||||
|
return m.opts.Context
|
||||||
|
}
|
||||||
|
|
||||||
func (m *memorySubscriber) Options() broker.SubscribeOptions {
|
func (m *memorySubscriber) Options() broker.SubscribeOptions {
|
||||||
return m.opts
|
return m.opts
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,6 +93,8 @@ type RawMessage []byte
|
|||||||
func (m *RawMessage) MarshalJSON() ([]byte, error) {
|
func (m *RawMessage) MarshalJSON() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
return []byte("null"), nil
|
return []byte("null"), nil
|
||||||
|
} else if len(*m) == 0 {
|
||||||
|
return []byte("null"), nil
|
||||||
}
|
}
|
||||||
return *m, nil
|
return *m, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -305,6 +305,10 @@ func (t *tunEvent) SetError(err error) {
|
|||||||
t.err = err
|
t.err = err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *tunEvent) Context() context.Context {
|
||||||
|
return context.TODO()
|
||||||
|
}
|
||||||
|
|
||||||
// NewBroker returns new tunnel broker
|
// NewBroker returns new tunnel broker
|
||||||
func NewBroker(opts ...broker.Option) (broker.Broker, error) {
|
func NewBroker(opts ...broker.Option) (broker.Broker, error) {
|
||||||
options := broker.NewOptions(opts...)
|
options := broker.NewOptions(opts...)
|
||||||
|
|||||||
@@ -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[[]byte] {
|
||||||
|
return NewPool(func() []byte { return make([]byte, size) })
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewBytesPool() Pool[*bytes.Buffer] {
|
||||||
|
return NewPool(func() *bytes.Buffer { return bytes.NewBuffer(nil) })
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user