Moved to google.golang.org/genproto/googleapis/api/annotations
Fixes #52
This commit is contained in:
		
							
								
								
									
										38
									
								
								vendor/github.com/go-kit/kit/examples/stringsvc2/instrumenting.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								vendor/github.com/go-kit/kit/examples/stringsvc2/instrumenting.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/go-kit/kit/metrics"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type instrumentingMiddleware struct {
 | 
			
		||||
	requestCount   metrics.Counter
 | 
			
		||||
	requestLatency metrics.Histogram
 | 
			
		||||
	countResult    metrics.Histogram
 | 
			
		||||
	next           StringService
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (mw instrumentingMiddleware) Uppercase(s string) (output string, err error) {
 | 
			
		||||
	defer func(begin time.Time) {
 | 
			
		||||
		lvs := []string{"method", "uppercase", "error", fmt.Sprint(err != nil)}
 | 
			
		||||
		mw.requestCount.With(lvs...).Add(1)
 | 
			
		||||
		mw.requestLatency.With(lvs...).Observe(time.Since(begin).Seconds())
 | 
			
		||||
	}(time.Now())
 | 
			
		||||
 | 
			
		||||
	output, err = mw.next.Uppercase(s)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (mw instrumentingMiddleware) Count(s string) (n int) {
 | 
			
		||||
	defer func(begin time.Time) {
 | 
			
		||||
		lvs := []string{"method", "count", "error", "false"}
 | 
			
		||||
		mw.requestCount.With(lvs...).Add(1)
 | 
			
		||||
		mw.requestLatency.With(lvs...).Observe(time.Since(begin).Seconds())
 | 
			
		||||
		mw.countResult.Observe(float64(n))
 | 
			
		||||
	}(time.Now())
 | 
			
		||||
 | 
			
		||||
	n = mw.next.Count(s)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										41
									
								
								vendor/github.com/go-kit/kit/examples/stringsvc2/logging.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								vendor/github.com/go-kit/kit/examples/stringsvc2/logging.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/go-kit/kit/log"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type loggingMiddleware struct {
 | 
			
		||||
	logger log.Logger
 | 
			
		||||
	next   StringService
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (mw loggingMiddleware) Uppercase(s string) (output string, err error) {
 | 
			
		||||
	defer func(begin time.Time) {
 | 
			
		||||
		_ = mw.logger.Log(
 | 
			
		||||
			"method", "uppercase",
 | 
			
		||||
			"input", s,
 | 
			
		||||
			"output", output,
 | 
			
		||||
			"err", err,
 | 
			
		||||
			"took", time.Since(begin),
 | 
			
		||||
		)
 | 
			
		||||
	}(time.Now())
 | 
			
		||||
 | 
			
		||||
	output, err = mw.next.Uppercase(s)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (mw loggingMiddleware) Count(s string) (n int) {
 | 
			
		||||
	defer func(begin time.Time) {
 | 
			
		||||
		_ = mw.logger.Log(
 | 
			
		||||
			"method", "count",
 | 
			
		||||
			"input", s,
 | 
			
		||||
			"n", n,
 | 
			
		||||
			"took", time.Since(begin),
 | 
			
		||||
		)
 | 
			
		||||
	}(time.Now())
 | 
			
		||||
 | 
			
		||||
	n = mw.next.Count(s)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										59
									
								
								vendor/github.com/go-kit/kit/examples/stringsvc2/main.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								vendor/github.com/go-kit/kit/examples/stringsvc2/main.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"os"
 | 
			
		||||
 | 
			
		||||
	stdprometheus "github.com/prometheus/client_golang/prometheus"
 | 
			
		||||
 | 
			
		||||
	"github.com/go-kit/kit/log"
 | 
			
		||||
	kitprometheus "github.com/go-kit/kit/metrics/prometheus"
 | 
			
		||||
	httptransport "github.com/go-kit/kit/transport/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	logger := log.NewLogfmtLogger(os.Stderr)
 | 
			
		||||
 | 
			
		||||
	fieldKeys := []string{"method", "error"}
 | 
			
		||||
	requestCount := kitprometheus.NewCounterFrom(stdprometheus.CounterOpts{
 | 
			
		||||
		Namespace: "my_group",
 | 
			
		||||
		Subsystem: "string_service",
 | 
			
		||||
		Name:      "request_count",
 | 
			
		||||
		Help:      "Number of requests received.",
 | 
			
		||||
	}, fieldKeys)
 | 
			
		||||
	requestLatency := kitprometheus.NewSummaryFrom(stdprometheus.SummaryOpts{
 | 
			
		||||
		Namespace: "my_group",
 | 
			
		||||
		Subsystem: "string_service",
 | 
			
		||||
		Name:      "request_latency_microseconds",
 | 
			
		||||
		Help:      "Total duration of requests in microseconds.",
 | 
			
		||||
	}, fieldKeys)
 | 
			
		||||
	countResult := kitprometheus.NewSummaryFrom(stdprometheus.SummaryOpts{
 | 
			
		||||
		Namespace: "my_group",
 | 
			
		||||
		Subsystem: "string_service",
 | 
			
		||||
		Name:      "count_result",
 | 
			
		||||
		Help:      "The result of each count method.",
 | 
			
		||||
	}, []string{}) // no fields here
 | 
			
		||||
 | 
			
		||||
	var svc StringService
 | 
			
		||||
	svc = stringService{}
 | 
			
		||||
	svc = loggingMiddleware{logger, svc}
 | 
			
		||||
	svc = instrumentingMiddleware{requestCount, requestLatency, countResult, svc}
 | 
			
		||||
 | 
			
		||||
	uppercaseHandler := httptransport.NewServer(
 | 
			
		||||
		makeUppercaseEndpoint(svc),
 | 
			
		||||
		decodeUppercaseRequest,
 | 
			
		||||
		encodeResponse,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	countHandler := httptransport.NewServer(
 | 
			
		||||
		makeCountEndpoint(svc),
 | 
			
		||||
		decodeCountRequest,
 | 
			
		||||
		encodeResponse,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	http.Handle("/uppercase", uppercaseHandler)
 | 
			
		||||
	http.Handle("/count", countHandler)
 | 
			
		||||
	http.Handle("/metrics", stdprometheus.Handler())
 | 
			
		||||
	logger.Log("msg", "HTTP", "addr", ":8080")
 | 
			
		||||
	logger.Log("err", http.ListenAndServe(":8080", nil))
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								vendor/github.com/go-kit/kit/examples/stringsvc2/service.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								vendor/github.com/go-kit/kit/examples/stringsvc2/service.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"strings"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// StringService provides operations on strings.
 | 
			
		||||
type StringService interface {
 | 
			
		||||
	Uppercase(string) (string, error)
 | 
			
		||||
	Count(string) int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type stringService struct{}
 | 
			
		||||
 | 
			
		||||
func (stringService) Uppercase(s string) (string, error) {
 | 
			
		||||
	if s == "" {
 | 
			
		||||
		return "", ErrEmpty
 | 
			
		||||
	}
 | 
			
		||||
	return strings.ToUpper(s), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (stringService) Count(s string) int {
 | 
			
		||||
	return len(s)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ErrEmpty is returned when an input string is empty.
 | 
			
		||||
var ErrEmpty = errors.New("empty string")
 | 
			
		||||
							
								
								
									
										65
									
								
								vendor/github.com/go-kit/kit/examples/stringsvc2/transport.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								vendor/github.com/go-kit/kit/examples/stringsvc2/transport.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"net/http"
 | 
			
		||||
 | 
			
		||||
	"github.com/go-kit/kit/endpoint"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func makeUppercaseEndpoint(svc StringService) endpoint.Endpoint {
 | 
			
		||||
	return func(ctx context.Context, request interface{}) (interface{}, error) {
 | 
			
		||||
		req := request.(uppercaseRequest)
 | 
			
		||||
		v, err := svc.Uppercase(req.S)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return uppercaseResponse{v, err.Error()}, nil
 | 
			
		||||
		}
 | 
			
		||||
		return uppercaseResponse{v, ""}, nil
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func makeCountEndpoint(svc StringService) endpoint.Endpoint {
 | 
			
		||||
	return func(ctx context.Context, request interface{}) (interface{}, error) {
 | 
			
		||||
		req := request.(countRequest)
 | 
			
		||||
		v := svc.Count(req.S)
 | 
			
		||||
		return countResponse{v}, nil
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func decodeUppercaseRequest(_ context.Context, r *http.Request) (interface{}, error) {
 | 
			
		||||
	var request uppercaseRequest
 | 
			
		||||
	if err := json.NewDecoder(r.Body).Decode(&request); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return request, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func decodeCountRequest(_ context.Context, r *http.Request) (interface{}, error) {
 | 
			
		||||
	var request countRequest
 | 
			
		||||
	if err := json.NewDecoder(r.Body).Decode(&request); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return request, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func encodeResponse(_ context.Context, w http.ResponseWriter, response interface{}) error {
 | 
			
		||||
	return json.NewEncoder(w).Encode(response)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type uppercaseRequest struct {
 | 
			
		||||
	S string `json:"s"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type uppercaseResponse struct {
 | 
			
		||||
	V   string `json:"v"`
 | 
			
		||||
	Err string `json:"err,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type countRequest struct {
 | 
			
		||||
	S string `json:"s"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type countResponse struct {
 | 
			
		||||
	V int `json:"v"`
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user