OSDN Git Service

delete miner
[bytom/vapor.git] / vendor / github.com / go-kit / kit / examples / stringsvc2 / main.go
1 package main
2
3 import (
4         "net/http"
5         "os"
6
7         stdprometheus "github.com/prometheus/client_golang/prometheus"
8         "github.com/prometheus/client_golang/prometheus/promhttp"
9
10         "github.com/go-kit/kit/log"
11         kitprometheus "github.com/go-kit/kit/metrics/prometheus"
12         httptransport "github.com/go-kit/kit/transport/http"
13 )
14
15 func main() {
16         logger := log.NewLogfmtLogger(os.Stderr)
17
18         fieldKeys := []string{"method", "error"}
19         requestCount := kitprometheus.NewCounterFrom(stdprometheus.CounterOpts{
20                 Namespace: "my_group",
21                 Subsystem: "string_service",
22                 Name:      "request_count",
23                 Help:      "Number of requests received.",
24         }, fieldKeys)
25         requestLatency := kitprometheus.NewSummaryFrom(stdprometheus.SummaryOpts{
26                 Namespace: "my_group",
27                 Subsystem: "string_service",
28                 Name:      "request_latency_microseconds",
29                 Help:      "Total duration of requests in microseconds.",
30         }, fieldKeys)
31         countResult := kitprometheus.NewSummaryFrom(stdprometheus.SummaryOpts{
32                 Namespace: "my_group",
33                 Subsystem: "string_service",
34                 Name:      "count_result",
35                 Help:      "The result of each count method.",
36         }, []string{}) // no fields here
37
38         var svc StringService
39         svc = stringService{}
40         svc = loggingMiddleware{logger, svc}
41         svc = instrumentingMiddleware{requestCount, requestLatency, countResult, svc}
42
43         uppercaseHandler := httptransport.NewServer(
44                 makeUppercaseEndpoint(svc),
45                 decodeUppercaseRequest,
46                 encodeResponse,
47         )
48
49         countHandler := httptransport.NewServer(
50                 makeCountEndpoint(svc),
51                 decodeCountRequest,
52                 encodeResponse,
53         )
54
55         http.Handle("/uppercase", uppercaseHandler)
56         http.Handle("/count", countHandler)
57         http.Handle("/metrics", promhttp.Handler())
58         logger.Log("msg", "HTTP", "addr", ":8080")
59         logger.Log("err", http.ListenAndServe(":8080", nil))
60 }