github.com/netdata/go.d.plugin@v0.58.1/modules/squidlog/metrics.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package squidlog
     4  
     5  import "github.com/netdata/go.d.plugin/pkg/metrics"
     6  
     7  func newSummary() metrics.Summary {
     8  	return &summary{metrics.NewSummary()}
     9  }
    10  
    11  type summary struct {
    12  	metrics.Summary
    13  }
    14  
    15  func (s summary) WriteTo(rv map[string]int64, key string, mul, div int) {
    16  	s.Summary.WriteTo(rv, key, mul, div)
    17  	if _, ok := rv[key+"_min"]; !ok {
    18  		rv[key+"_min"] = 0
    19  		rv[key+"_max"] = 0
    20  		rv[key+"_avg"] = 0
    21  	}
    22  }
    23  
    24  const (
    25  	pxHTTPCode     = "http_resp_code_"
    26  	pxReqMethod    = "req_method_"
    27  	pxCacheCode    = "cache_result_code_"
    28  	pxTransportTag = "cache_transport_tag_"
    29  	pxHandlingTag  = "cache_handling_tag_"
    30  	pxObjectTag    = "cache_object_tag_"
    31  	pxSourceTag    = "cache_load_source_tag_"
    32  	pxErrorTag     = "cache_error_tag_"
    33  	pxHierCode     = "hier_code_"
    34  	pxMimeType     = "mime_type_"
    35  	pxSrvAddr      = "server_address_"
    36  )
    37  
    38  type metricsData struct {
    39  	Requests  metrics.Counter `stm:"requests"`
    40  	Unmatched metrics.Counter `stm:"unmatched"`
    41  
    42  	HTTPRespCode metrics.CounterVec `stm:"http_resp_code"`
    43  	HTTPResp0xx  metrics.Counter    `stm:"http_resp_0xx"`
    44  	HTTPResp1xx  metrics.Counter    `stm:"http_resp_1xx"`
    45  	HTTPResp2xx  metrics.Counter    `stm:"http_resp_2xx"`
    46  	HTTPResp3xx  metrics.Counter    `stm:"http_resp_3xx"`
    47  	HTTPResp4xx  metrics.Counter    `stm:"http_resp_4xx"`
    48  	HTTPResp5xx  metrics.Counter    `stm:"http_resp_5xx"`
    49  	HTTPResp6xx  metrics.Counter    `stm:"http_resp_6xx"`
    50  
    51  	ReqSuccess  metrics.Counter `stm:"req_type_success"`
    52  	ReqRedirect metrics.Counter `stm:"req_type_redirect"`
    53  	ReqBad      metrics.Counter `stm:"req_type_bad"`
    54  	ReqError    metrics.Counter `stm:"req_type_error"`
    55  
    56  	BytesSent     metrics.Counter       `stm:"bytes_sent"`
    57  	RespTime      metrics.Summary       `stm:"resp_time,1000,1"`
    58  	UniqueClients metrics.UniqueCounter `stm:"uniq_clients"`
    59  
    60  	ReqMethod              metrics.CounterVec `stm:"req_method"`
    61  	CacheCode              metrics.CounterVec `stm:"cache_result_code"`
    62  	CacheCodeTransportTag  metrics.CounterVec `stm:"cache_transport_tag"`
    63  	CacheCodeHandlingTag   metrics.CounterVec `stm:"cache_handling_tag"`
    64  	CacheCodeObjectTag     metrics.CounterVec `stm:"cache_object_tag"`
    65  	CacheCodeLoadSourceTag metrics.CounterVec `stm:"cache_load_source_tag"`
    66  	CacheCodeErrorTag      metrics.CounterVec `stm:"cache_error_tag"`
    67  	HierCode               metrics.CounterVec `stm:"hier_code"`
    68  	MimeType               metrics.CounterVec `stm:"mime_type"`
    69  	Server                 metrics.CounterVec `stm:"server_address"`
    70  }
    71  
    72  func (m *metricsData) reset() {
    73  	m.RespTime.Reset()
    74  	m.UniqueClients.Reset()
    75  }
    76  
    77  func newMetricsData() *metricsData {
    78  	return &metricsData{
    79  		RespTime:               newSummary(),
    80  		UniqueClients:          metrics.NewUniqueCounter(true),
    81  		HTTPRespCode:           metrics.NewCounterVec(),
    82  		ReqMethod:              metrics.NewCounterVec(),
    83  		CacheCode:              metrics.NewCounterVec(),
    84  		CacheCodeTransportTag:  metrics.NewCounterVec(),
    85  		CacheCodeHandlingTag:   metrics.NewCounterVec(),
    86  		CacheCodeObjectTag:     metrics.NewCounterVec(),
    87  		CacheCodeLoadSourceTag: metrics.NewCounterVec(),
    88  		CacheCodeErrorTag:      metrics.NewCounterVec(),
    89  		HierCode:               metrics.NewCounterVec(),
    90  		Server:                 metrics.NewCounterVec(),
    91  		MimeType:               metrics.NewCounterVec(),
    92  	}
    93  }