github.com/braveheart12/just@v0.8.7/metrics/insgorund.go (about) 1 /* 2 * Copyright 2019 Insolar Technologies 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package metrics 18 19 import ( 20 "github.com/prometheus/client_golang/prometheus" 21 ) 22 23 var InsgorundCallsTotal = prometheus.NewCounter(prometheus.CounterOpts{ 24 Name: "call_contract_method_total", 25 Help: "Total number of calls contracts methods", 26 Namespace: insgorundNamespace, 27 }) 28 29 var InsgorundContractExecutionTime = prometheus.NewSummaryVec(prometheus.SummaryOpts{ 30 Name: "contract_execution_time", 31 Help: "Time spent on execution contract", 32 Namespace: insgorundNamespace, 33 Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.95: 0.005, 0.99: 0.001}, 34 }, []string{"method"}) 35 36 func GetInsgorundRegistry() *prometheus.Registry { 37 registry := prometheus.NewRegistry() 38 39 registerer := prometheus.WrapRegistererWith(prometheus.Labels{"role": "virtual"}, registry) 40 41 registerer.MustRegister(InsgorundCallsTotal) 42 registerer.MustRegister(InsgorundContractExecutionTime) 43 // default system collectors 44 registerer.MustRegister(prometheus.NewProcessCollector( 45 prometheus.ProcessCollectorOpts{Namespace: insgorundNamespace}, 46 )) 47 registerer.MustRegister(prometheus.NewGoCollector()) 48 49 return registry 50 }