metrics

package
v0.6.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 22, 2023 License: Apache-2.0, MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	BitswapRequestCount                = stats.Int64("bitswap_request_total", "The number of bitswap requests received", stats.UnitDimensionless)
	BitswapResponseCount               = stats.Int64("bitswap_response_total", "The number of bitswap responses", stats.UnitDimensionless)
	BitswapRetrieverRequestCount       = stats.Int64("bitswap_retriever_request_total", "The number of bitswap messages that required a retriever lookup", stats.UnitDimensionless)
	BlockstoreCacheHitCount            = stats.Int64("blockstore_cache_hit_total", "The number of blocks from the local blockstore served to peers", stats.UnitDimensionless)
	BytesTransferredTotal              = stats.Int64("data_transferred_bytes_total", "The number of bytes transferred from storage providers to retrieval clients", stats.UnitBytes)
	RetrievalDealCost                  = stats.Int64("retrieval_deal_cost_fil", "The cost in FIL of a retrieval deal with a storage provider", stats.UnitDimensionless)
	RetrievalDealActiveCount           = stats.Int64("retrieval_deal_active_total", "The number of active retrieval deals that have not yet succeeded or failed", stats.UnitDimensionless)
	RetrievalDealDuration              = stats.Float64("retrieval_deal_duration_seconds", "The duration in seconds of a retrieval deal with a storage provider", stats.UnitSeconds)
	RetrievalDealFailCount             = stats.Int64("retrieval_deal_fail_total", "The number of failed retrieval deals with storage providers", stats.UnitDimensionless)
	RetrievalDealSize                  = stats.Int64("retrieval_deal_size_bytes", "The size in bytes of a retrieval deal with a storage provider", stats.UnitDimensionless)
	RetrievalDealSuccessCount          = stats.Int64("retrieval_deal_success_total", "The number of successful retrieval deals with storage providers", stats.UnitDimensionless)
	RetrievalRequestCount              = stats.Int64("retrieval_request_total", "The number of retrieval deals initiated with storage providers", stats.UnitDimensionless)
	RetrievalErrorPaychCount           = stats.Int64("retrieval_error_paych_total", "The number of retrieval errors for 'failed to get payment channel'", stats.UnitDimensionless)
	RetrievalErrorRejectedCount        = stats.Int64("retrieval_error_rejected_total", "The number of retrieval errors for 'response rejected'", stats.UnitDimensionless)
	RetrievalErrorTooManyCount         = stats.Int64("retrieval_error_toomany_total", "The number of retrieval errors for 'Too many retrieval deals received'", stats.UnitDimensionless)
	RetrievalErrorACLCount             = stats.Int64("retrieval_error_acl_total", "The number of retrieval errors for 'Access Control'", stats.UnitDimensionless)
	RetrievalErrorMaintenanceCount     = stats.Int64("retrieval_error_maintenance_total", "The number of retrieval errors for 'Under maintenance, retry later'", stats.UnitDimensionless)
	RetrievalErrorNoOnlineCount        = stats.Int64("retrieval_error_noonline_total", "The number of retrieval errors for 'miner is not accepting online retrieval deals'", stats.UnitDimensionless)
	RetrievalErrorUnconfirmedCount     = stats.Int64("retrieval_error_unconfirmed_total", "The number of retrieval errors for 'unconfirmed block transfer'", stats.UnitDimensionless)
	RetrievalErrorTimeoutCount         = stats.Int64("retrieval_error_timeout_total", "The number of retrieval errors for 'timeout after X'", stats.UnitDimensionless)
	RetrievalErrorOtherCount           = stats.Int64("retrieval_error_other_total", "The number of retrieval errors with uncategorized causes", stats.UnitDimensionless)
	QueryErrorFailedToDialCount        = stats.Int64("query_error_failed_to_dial", "The number of query errors because we coult not connect to the provider", stats.UnitDimensionless)
	QueryErrorFailedToOpenStreamCount  = stats.Int64("query_error_failed_to_open_stream", "The number of query errors where the miner did not respond on the retrieval protocol", stats.UnitDimensionless)
	QueryErrorResponseEOFCount         = stats.Int64("query_error_response_eof", "The number of query errors because where the response terminated early", stats.UnitDimensionless)
	QueryErrorResponseStreamResetCount = stats.Int64("query_error_response_stream_reset", "The number of query errors because where the response stream was reset", stats.UnitDimensionless)
	QueryErrorDAGStoreCount            = stats.Int64("query_error_dagstore", "The number of query failures cause the provider experienced a DAG Store error", stats.UnitDimensionless)
	QueryErrorDealNotFoundCount        = stats.Int64("query_error_dealstate", "The number of query failures cause the provider couldn't find the relevant deal", stats.UnitDimensionless)
	QueryErrorOtherCount               = stats.Int64("query_error_error_other_total", "The number of retrieval errors with uncategorized causes", stats.UnitDimensionless)

	// Indexer Candidates
	IndexerCandidatesPerRequestCount          = stats.Int64("indexer_candidates_per_request_total", "The number of indexer candidates received per request", stats.UnitDimensionless)
	RequestWithIndexerCandidatesCount         = stats.Int64("request_with_indexer_candidates_total", "The number of requests that result in non-zero candidates from the indexer", stats.UnitDimensionless)
	RequestWithIndexerCandidatesFilteredCount = stats.Int64("request_with_indexer_candidates_filtered_total", "The number of requests that result in non-zero candidates from the indexer after filtering", stats.UnitDimensionless)

	// Query
	RequestWithSuccessfulQueriesCount         = stats.Int64("request_with_successful_queries_total", "The number of requests that result in a non-zero number of successful queries from SPs", stats.UnitDimensionless)
	RequestWithSuccessfulQueriesFilteredCount = stats.Int64("request_with_successful_queries_filtered_total", "The number of requests that result in a non-zero number of successful queries from SPs after filtering", stats.UnitDimensionless)
	SuccessfulQueriesPerRequestCount          = stats.Int64("successful_queries_per_request_total", "The number of successful queries received per request", stats.UnitDimensionless)
	SuccessfulQueriesPerRequestFilteredCount  = stats.Int64("successful_queries_per_request_filtered_total", "The number of successful queries received per request after filtering", stats.UnitDimensionless)

	// Retrieval
	FailedRetrievalsPerRequestCount = stats.Int64("failed_retrievals_per_request_total", "The number of failed retrieval attempts per request", stats.UnitDimensionless)
)

Measures

View Source
var (
	BitswapDontHaveReason, _ = tag.NewKey("bitswap_dont_have_reason")
	BitswapTopic, _          = tag.NewKey("bitswap_topic")
	EndpointURL, _           = tag.NewKey("endpoint_url")

	Error, _  = tag.NewKey("error")
	Method, _ = tag.NewKey("method")
	Status, _ = tag.NewKey("status")
)

Tags

View Source
var DefaultViews = []*view.View{
	bitswapRequestView,
	bitswapResponseView,
	bitswapRetreiverRequestView,
	blockstoreCacheHitView,
	bytesTransferredView,
	failedRetrievalsPerRequestView,
	requestWithIndexerCandidatesFilteredView,
	requestWithIndexerCandidatesView,
	requestWithSuccessfulQueriesFilteredView,
	requestWithSuccessfulQueriesView,
	indexerCandidatesPerRequestView,
	retrievalDealActiveView,
	retrievalDealCostView,
	retrievalDealDurationView,
	retrievalDealFailView,
	retrievalDealSuccessView,
	retrievalDealSizeView,
	retrievalRequestCountView,
	retrievalErrorPaychView,
	retrievalErrorRejectedView,
	retrievalErrorTooManyView,
	retrievalErrorACLView,
	retrievalErrorMaintenanceView,
	retrievalErrorNoOnlineView,
	retrievalErrorUnconfirmedView,
	retrievalErrorTimeoutView,
	retrievalErrorOtherView,
	successfulQueriesPerRequestFilteredView,
	successfulQueriesPerRequestView,
	queryErrorFailedToDialView,
	queryErrorFailedToOpenStreamView,
	queryErrorResponseEOFView,
	queryErrorResponseStreamResetView,
	queryErrorDAGStoreView,
	queryErrorDealNotFoundView,
	queryErrorOtherView,
}
View Source
var ErrorMetricMatches = map[string]*stats.Int64Measure{
	"failed to get payment channel":                 RetrievalErrorPaychCount,
	"response rejected":                             RetrievalErrorRejectedCount,
	"Too many retrieval deals received":             RetrievalErrorTooManyCount,
	"Access Control":                                RetrievalErrorACLCount,
	"Under maintenance, retry later":                RetrievalErrorMaintenanceCount,
	"miner is not accepting online retrieval deals": RetrievalErrorNoOnlineCount,
	"unconfirmed block transfer":                    RetrievalErrorUnconfirmedCount,
	"timeout after ":                                RetrievalErrorTimeoutCount,
}

ErrorMetricMatches is a mapping of retrieval error message substrings (i.e. that can be matched against error messages) and metrics to report for that error.

View Source
var QueryErrorMetricMatches = map[string]*stats.Int64Measure{
	"failed to dial":                        QueryErrorFailedToDialCount,
	"failed to open stream to peer":         QueryErrorFailedToOpenStreamCount,
	"failed to read response: EOF":          QueryErrorResponseEOFCount,
	"failed to read response: stream reset": QueryErrorResponseStreamResetCount,
	"getting pieces for cid":                QueryErrorDAGStoreCount,
	"failed to fetch storage deal state":    QueryErrorDealNotFoundCount,
}

QueryErrorMetricMatches is a mapping of retrieval error message substrings during the query phase (i.e. that can be matched against error messages) and metrics to report for that error.

Functions

func NewExporter

func NewExporter(views ...*view.View) http.Handler

Types

type MetricsServer added in v0.6.5

type MetricsServer struct {
	// contains filtered or unexported fields
}

MetricsServer simply exposes prometheus and pprof metrics via HTTP

func NewHttpServer added in v0.6.5

func NewHttpServer(ctx context.Context, address string, port uint) (*MetricsServer, error)

NewHttpServer creates a new HttpServer

func (MetricsServer) Addr added in v0.6.5

func (s MetricsServer) Addr() string

Addr returns the listening address of the server

func (*MetricsServer) Close added in v0.6.5

func (s *MetricsServer) Close() error

Close shutsdown the server and cancels the server context

func (*MetricsServer) Start added in v0.6.5

func (s *MetricsServer) Start() error

Start starts the metrics http server, returning an error if the server failed to start

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL