Integrate BACKBEAT SDK and resolve KACHING license validation
Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
117
vendor/github.com/libp2p/go-libp2p-kad-dht/metrics/metrics.go
generated
vendored
Normal file
117
vendor/github.com/libp2p/go-libp2p-kad-dht/metrics/metrics.go
generated
vendored
Normal file
@@ -0,0 +1,117 @@
|
||||
package metrics
|
||||
|
||||
import (
|
||||
pb "github.com/libp2p/go-libp2p-kad-dht/pb"
|
||||
"go.opencensus.io/stats"
|
||||
"go.opencensus.io/stats/view"
|
||||
"go.opencensus.io/tag"
|
||||
)
|
||||
|
||||
var (
|
||||
defaultBytesDistribution = view.Distribution(1024, 2048, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216, 67108864, 268435456, 1073741824, 4294967296)
|
||||
defaultMillisecondsDistribution = view.Distribution(0.01, 0.05, 0.1, 0.3, 0.6, 0.8, 1, 2, 3, 4, 5, 6, 8, 10, 13, 16, 20, 25, 30, 40, 50, 65, 80, 100, 130, 160, 200, 250, 300, 400, 500, 650, 800, 1000, 2000, 5000, 10000, 20000, 50000, 100000)
|
||||
)
|
||||
|
||||
// Keys
|
||||
var (
|
||||
KeyMessageType, _ = tag.NewKey("message_type")
|
||||
KeyPeerID, _ = tag.NewKey("peer_id")
|
||||
// KeyInstanceID identifies a dht instance by the pointer address.
|
||||
// Useful for differentiating between different dhts that have the same peer id.
|
||||
KeyInstanceID, _ = tag.NewKey("instance_id")
|
||||
)
|
||||
|
||||
// UpsertMessageType is a convenience upserts the message type
|
||||
// of a pb.Message into the KeyMessageType.
|
||||
func UpsertMessageType(m *pb.Message) tag.Mutator {
|
||||
return tag.Upsert(KeyMessageType, m.Type.String())
|
||||
}
|
||||
|
||||
// Measures
|
||||
var (
|
||||
ReceivedMessages = stats.Int64("libp2p.io/dht/kad/received_messages", "Total number of messages received per RPC", stats.UnitDimensionless)
|
||||
ReceivedMessageErrors = stats.Int64("libp2p.io/dht/kad/received_message_errors", "Total number of errors for messages received per RPC", stats.UnitDimensionless)
|
||||
ReceivedBytes = stats.Int64("libp2p.io/dht/kad/received_bytes", "Total received bytes per RPC", stats.UnitBytes)
|
||||
InboundRequestLatency = stats.Float64("libp2p.io/dht/kad/inbound_request_latency", "Latency per RPC", stats.UnitMilliseconds)
|
||||
OutboundRequestLatency = stats.Float64("libp2p.io/dht/kad/outbound_request_latency", "Latency per RPC", stats.UnitMilliseconds)
|
||||
SentMessages = stats.Int64("libp2p.io/dht/kad/sent_messages", "Total number of messages sent per RPC", stats.UnitDimensionless)
|
||||
SentMessageErrors = stats.Int64("libp2p.io/dht/kad/sent_message_errors", "Total number of errors for messages sent per RPC", stats.UnitDimensionless)
|
||||
SentRequests = stats.Int64("libp2p.io/dht/kad/sent_requests", "Total number of requests sent per RPC", stats.UnitDimensionless)
|
||||
SentRequestErrors = stats.Int64("libp2p.io/dht/kad/sent_request_errors", "Total number of errors for requests sent per RPC", stats.UnitDimensionless)
|
||||
SentBytes = stats.Int64("libp2p.io/dht/kad/sent_bytes", "Total sent bytes per RPC", stats.UnitBytes)
|
||||
NetworkSize = stats.Int64("libp2p.io/dht/kad/network_size", "Network size estimation", stats.UnitDimensionless)
|
||||
)
|
||||
|
||||
// Views
|
||||
var (
|
||||
ReceivedMessagesView = &view.View{
|
||||
Measure: ReceivedMessages,
|
||||
TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID},
|
||||
Aggregation: view.Count(),
|
||||
}
|
||||
ReceivedMessageErrorsView = &view.View{
|
||||
Measure: ReceivedMessageErrors,
|
||||
TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID},
|
||||
Aggregation: view.Count(),
|
||||
}
|
||||
ReceivedBytesView = &view.View{
|
||||
Measure: ReceivedBytes,
|
||||
TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID},
|
||||
Aggregation: defaultBytesDistribution,
|
||||
}
|
||||
InboundRequestLatencyView = &view.View{
|
||||
Measure: InboundRequestLatency,
|
||||
TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID},
|
||||
Aggregation: defaultMillisecondsDistribution,
|
||||
}
|
||||
OutboundRequestLatencyView = &view.View{
|
||||
Measure: OutboundRequestLatency,
|
||||
TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID},
|
||||
Aggregation: defaultMillisecondsDistribution,
|
||||
}
|
||||
SentMessagesView = &view.View{
|
||||
Measure: SentMessages,
|
||||
TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID},
|
||||
Aggregation: view.Count(),
|
||||
}
|
||||
SentMessageErrorsView = &view.View{
|
||||
Measure: SentMessageErrors,
|
||||
TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID},
|
||||
Aggregation: view.Count(),
|
||||
}
|
||||
SentRequestsView = &view.View{
|
||||
Measure: SentRequests,
|
||||
TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID},
|
||||
Aggregation: view.Count(),
|
||||
}
|
||||
SentRequestErrorsView = &view.View{
|
||||
Measure: SentRequestErrors,
|
||||
TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID},
|
||||
Aggregation: view.Count(),
|
||||
}
|
||||
SentBytesView = &view.View{
|
||||
Measure: SentBytes,
|
||||
TagKeys: []tag.Key{KeyMessageType, KeyPeerID, KeyInstanceID},
|
||||
Aggregation: defaultBytesDistribution,
|
||||
}
|
||||
NetworkSizeView = &view.View{
|
||||
Measure: NetworkSize,
|
||||
TagKeys: []tag.Key{KeyPeerID, KeyInstanceID},
|
||||
Aggregation: view.Count(),
|
||||
}
|
||||
)
|
||||
|
||||
// DefaultViews with all views in it.
|
||||
var DefaultViews = []*view.View{
|
||||
ReceivedMessagesView,
|
||||
ReceivedMessageErrorsView,
|
||||
ReceivedBytesView,
|
||||
InboundRequestLatencyView,
|
||||
OutboundRequestLatencyView,
|
||||
SentMessagesView,
|
||||
SentMessageErrorsView,
|
||||
SentRequestsView,
|
||||
SentRequestErrorsView,
|
||||
SentBytesView,
|
||||
NetworkSizeView,
|
||||
}
|
||||
Reference in New Issue
Block a user