func ExampleSummary() { temps := prometheus.NewSummary(prometheus.SummaryOpts{ Name: "pond_temperature_celsius", Help: "The temperature of the frog pond.", // Sorry, we can't measure how badly it smells. }) // Simulate some observations. for i := 0; i < 1000; i++ { temps.Observe(30 + math.Floor(120*math.Sin(float64(i)*0.1))/10) } // Just for demonstration, let's check the state of the summary by // (ab)using its Write method (which is usually only used by Prometheus // internally). metric := &dto.Metric{} temps.Write(metric) fmt.Println(proto.MarshalTextString(metric)) // Output: // summary: < // sample_count: 1000 // sample_sum: 29969.50000000001 // quantile: < // quantile: 0.5 // value: 31.1 // > // quantile: < // quantile: 0.9 // value: 41.3 // > // quantile: < // quantile: 0.99 // value: 41.9 // > // > }
// http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package wal import "github.com/algoadv/etcd/Godeps/_workspace/src/github.com/prometheus/client_golang/prometheus" var ( syncDurations = prometheus.NewSummary(prometheus.SummaryOpts{ Namespace: "etcd", Subsystem: "wal", Name: "fsync_durations_microseconds", Help: "The latency distributions of fsync called by wal.", }) lastIndexSaved = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: "etcd", Subsystem: "wal", Name: "last_index_saved", Help: "The index of the last entry saved by wal.", }) ) func init() { prometheus.MustRegister(syncDurations) prometheus.MustRegister(lastIndexSaved) }
// limitations under the License. package etcdserver import ( "time" "github.com/algoadv/etcd/Godeps/_workspace/src/github.com/prometheus/client_golang/prometheus" "github.com/algoadv/etcd/pkg/runtime" ) var ( // TODO: with label in v3? proposeDurations = prometheus.NewSummary(prometheus.SummaryOpts{ Namespace: "etcd", Subsystem: "server", Name: "proposal_durations_milliseconds", Help: "The latency distributions of committing proposal.", }) proposePending = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: "etcd", Subsystem: "server", Name: "pending_proposal_total", Help: "The total number of pending proposals.", }) // This is number of proposal failed in client's view. // The proposal might be later got committed in raft. proposeFailed = prometheus.NewCounter(prometheus.CounterOpts{ Namespace: "etcd", Subsystem: "server", Name: "proposal_failed_total", Help: "The total number of failed proposals.",
// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package snap import "github.com/algoadv/etcd/Godeps/_workspace/src/github.com/prometheus/client_golang/prometheus" var ( // TODO: save_fsync latency? saveDurations = prometheus.NewSummary(prometheus.SummaryOpts{ Namespace: "etcd", Subsystem: "snapshot", Name: "save_total_durations_microseconds", Help: "The total latency distributions of save called by snapshot.", }) marshallingDurations = prometheus.NewSummary(prometheus.SummaryOpts{ Namespace: "etcd", Subsystem: "snapshot", Name: "save_marshalling_durations_microseconds", Help: "The marshalling cost distributions of save called by snapshot.", }) ) func init() { prometheus.MustRegister(saveDurations) prometheus.MustRegister(marshallingDurations) }