...

Package metrics

import "github.com/hyperledger/fabric/gossip/metrics"
Overview
Index
Subdirectories

Overview ▾

Variables

var (
    HeightOpts = metrics.GaugeOpts{
        Namespace:    "gossip",
        Subsystem:    "state",
        Name:         "height",
        Help:         "Current ledger height",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }

    CommitDurationOpts = metrics.HistogramOpts{
        Namespace:    "gossip",
        Subsystem:    "state",
        Name:         "commit_duration",
        Help:         "Time it takes to commit a block in seconds",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }

    PayloadBufferSizeOpts = metrics.GaugeOpts{
        Namespace:    "gossip",
        Subsystem:    "payload_buffer",
        Name:         "size",
        Help:         "Size of the payload buffer",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }
)
var (
    SentMessagesOpts = metrics.CounterOpts{
        Namespace:    "gossip",
        Subsystem:    "comm",
        Name:         "messages_sent",
        Help:         "Number of messages sent",
        StatsdFormat: "%{#fqname}",
    }

    BufferOverflowOpts = metrics.CounterOpts{
        Namespace:    "gossip",
        Subsystem:    "comm",
        Name:         "overflow_count",
        Help:         "Number of outgoing queue buffer overflows",
        StatsdFormat: "%{#fqname}",
    }

    ReceivedMessagesOpts = metrics.CounterOpts{
        Namespace:    "gossip",
        Subsystem:    "comm",
        Name:         "messages_received",
        Help:         "Number of messages received",
        StatsdFormat: "%{#fqname}",
    }
)
var (
    ValidationDurationOpts = metrics.HistogramOpts{
        Namespace:    "gossip",
        Subsystem:    "privdata",
        Name:         "validation_duration",
        Help:         "Time it takes to validate a block (in seconds)",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }

    ListMissingPrivateDataDurationOpts = metrics.HistogramOpts{
        Namespace:    "gossip",
        Subsystem:    "privdata",
        Name:         "list_missing_duration",
        Help:         "Time it takes to list the missing private data (in seconds)",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }

    FetchDurationOpts = metrics.HistogramOpts{
        Namespace:    "gossip",
        Subsystem:    "privdata",
        Name:         "fetch_duration",
        Help:         "Time it takes to fetch missing private data from peers (in seconds)",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }

    CommitPrivateDataDurationOpts = metrics.HistogramOpts{
        Namespace:    "gossip",
        Subsystem:    "privdata",
        Name:         "commit_block_duration",
        Help:         "Time it takes to commit private data and the corresponding block (in seconds)",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }

    PurgeDurationOpts = metrics.HistogramOpts{
        Namespace:    "gossip",
        Subsystem:    "privdata",
        Name:         "purge_duration",
        Help:         "Time it takes to purge private data (in seconds)",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }

    SendDurationOpts = metrics.HistogramOpts{
        Namespace:    "gossip",
        Subsystem:    "privdata",
        Name:         "send_duration",
        Help:         "Time it takes to send a missing private data element (in seconds)",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }

    ReconciliationDurationOpts = metrics.HistogramOpts{
        Namespace:    "gossip",
        Subsystem:    "privdata",
        Name:         "reconciliation_duration",
        Help:         "Time it takes for reconciliation to complete (in seconds)",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }

    PullDurationOpts = metrics.HistogramOpts{
        Namespace:    "gossip",
        Subsystem:    "privdata",
        Name:         "pull_duration",
        Help:         "Time it takes to pull a missing private data element (in seconds)",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }

    RetrieveDurationOpts = metrics.HistogramOpts{
        Namespace:    "gossip",
        Subsystem:    "privdata",
        Name:         "retrieve_duration",
        Help:         "Time it takes to retrieve missing private data elements from the ledger (in seconds)",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }
)
var (
    LeaderDeclerationOpts = metrics.GaugeOpts{
        Namespace:    "gossip",
        Subsystem:    "leader_election",
        Name:         "leader",
        Help:         "Peer is leader (1) or follower (0)",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }
)
var (
    TotalOpts = metrics.GaugeOpts{
        Namespace:    "gossip",
        Subsystem:    "membership",
        Name:         "total_peers_known",
        Help:         "Total known peers",
        LabelNames:   []string{"channel"},
        StatsdFormat: "%{#fqname}.%{channel}",
    }
)

type CommMetrics

CommMetrics encapsulates gossip communication related metrics

type CommMetrics struct {
    SentMessages     metrics.Counter
    BufferOverflow   metrics.Counter
    ReceivedMessages metrics.Counter
}

type ElectionMetrics

ElectionMetrics encapsulates gossip leader election related metrics

type ElectionMetrics struct {
    Declaration metrics.Gauge
}

type GossipMetrics

GossipMetrics encapsulates all of gossip metrics

type GossipMetrics struct {
    StateMetrics      *StateMetrics
    ElectionMetrics   *ElectionMetrics
    CommMetrics       *CommMetrics
    MembershipMetrics *MembershipMetrics
    PrivdataMetrics   *PrivdataMetrics
}

func NewGossipMetrics

func NewGossipMetrics(p metrics.Provider) *GossipMetrics

type MembershipMetrics

MembershipMetrics encapsulates gossip channel membership related metrics

type MembershipMetrics struct {
    Total metrics.Gauge
}

type PrivdataMetrics

PrivdataMetrics encapsulates gossip private data related metrics

type PrivdataMetrics struct {
    ValidationDuration             metrics.Histogram
    ListMissingPrivateDataDuration metrics.Histogram
    FetchDuration                  metrics.Histogram
    CommitPrivateDataDuration      metrics.Histogram
    PurgeDuration                  metrics.Histogram
    SendDuration                   metrics.Histogram
    ReconciliationDuration         metrics.Histogram
    PullDuration                   metrics.Histogram
    RetrieveDuration               metrics.Histogram
}

type StateMetrics

StateMetrics encapsulates gossip state related metrics

type StateMetrics struct {
    Height            metrics.Gauge
    CommitDuration    metrics.Histogram
    PayloadBufferSize metrics.Gauge
}

Subdirectories

Name Synopsis
..
mocks