package metrics import ( "go.opencensus.io/stats" "go.opencensus.io/stats/view" "github.com/filecoin-project/lotus/metrics" ) var Timer = metrics.Timer var SinceInMilliseconds = metrics.SinceInMilliseconds // Distribution var ( 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, 32, 64, 128, 256, 500, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000, 50000, 60000) ) // Global Tags var () // Measures var ( TipsetCollectionHeight = stats.Int64("tipset_collection/height", "Current Height of the node", stats.UnitDimensionless) TipsetCollectionHeightExpected = stats.Int64("tipset_collection/height_expected", "Current Height of the node", stats.UnitDimensionless) TipsetCollectionPoints = stats.Int64("tipset_collection/points", "Counter for total number of points collected", stats.UnitDimensionless) TipsetCollectionDuration = stats.Float64("tipset_collection/total_ms", "Duration of tipset point collection", stats.UnitMilliseconds) TipsetCollectionBlockHeaderDuration = stats.Float64("tipset_collection/block_header_ms", "Duration of block header point collection", stats.UnitMilliseconds) TipsetCollectionMessageDuration = stats.Float64("tipset_collection/message_ms", "Duration of message point collection", stats.UnitMilliseconds) TipsetCollectionStaterootDuration = stats.Float64("tipset_collection/stateroot_ms", "Duration of stateroot point collection", stats.UnitMilliseconds) IpldStoreCacheSize = stats.Int64("ipld_store/cache_size", "Initialized size of the object read cache", stats.UnitDimensionless) IpldStoreCacheLength = stats.Int64("ipld_store/cache_length", "Current length of object read cache", stats.UnitDimensionless) IpldStoreCacheHit = stats.Int64("ipld_store/cache_hit", "Counter for total cache hits", stats.UnitDimensionless) IpldStoreCacheMiss = stats.Int64("ipld_store/cache_miss", "Counter for total cache misses", stats.UnitDimensionless) IpldStoreReadDuration = stats.Float64("ipld_store/read_ms", "Duration of object read request to lotus", stats.UnitMilliseconds) IpldStoreGetDuration = stats.Float64("ipld_store/get_ms", "Duration of object get from store", stats.UnitMilliseconds) WriteQueueSize = stats.Int64("write_queue/length", "Current length of the write queue", stats.UnitDimensionless) ) // Views var ( TipsetCollectionHeightView = &view.View{ Measure: TipsetCollectionHeight, Aggregation: view.LastValue(), } TipsetCollectionHeightExpectedView = &view.View{ Measure: TipsetCollectionHeightExpected, Aggregation: view.LastValue(), } TipsetCollectionPointsView = &view.View{ Measure: TipsetCollectionPoints, Aggregation: view.Sum(), } TipsetCollectionDurationView = &view.View{ Measure: TipsetCollectionDuration, Aggregation: defaultMillisecondsDistribution, } TipsetCollectionBlockHeaderDurationView = &view.View{ Measure: TipsetCollectionBlockHeaderDuration, Aggregation: defaultMillisecondsDistribution, } TipsetCollectionMessageDurationView = &view.View{ Measure: TipsetCollectionMessageDuration, Aggregation: defaultMillisecondsDistribution, } TipsetCollectionStaterootDurationView = &view.View{ Measure: TipsetCollectionStaterootDuration, Aggregation: defaultMillisecondsDistribution, } IpldStoreCacheSizeView = &view.View{ Measure: IpldStoreCacheSize, Aggregation: view.LastValue(), } IpldStoreCacheLengthView = &view.View{ Measure: IpldStoreCacheLength, Aggregation: view.LastValue(), } IpldStoreCacheHitView = &view.View{ Measure: IpldStoreCacheHit, Aggregation: view.Count(), } IpldStoreCacheMissView = &view.View{ Measure: IpldStoreCacheMiss, Aggregation: view.Count(), } IpldStoreReadDurationView = &view.View{ Measure: IpldStoreReadDuration, Aggregation: defaultMillisecondsDistribution, } IpldStoreGetDurationView = &view.View{ Measure: IpldStoreGetDuration, Aggregation: defaultMillisecondsDistribution, } ) // DefaultViews is an array of OpenCensus views for metric gathering purposes var DefaultViews = []*view.View{ TipsetCollectionHeightView, TipsetCollectionHeightExpectedView, TipsetCollectionPointsView, TipsetCollectionDurationView, TipsetCollectionBlockHeaderDurationView, TipsetCollectionMessageDurationView, TipsetCollectionStaterootDurationView, IpldStoreCacheSizeView, IpldStoreCacheLengthView, IpldStoreCacheHitView, IpldStoreCacheMissView, IpldStoreReadDurationView, IpldStoreGetDurationView, }