AWS cloudwatch middleware for negroni.
go get -u github.com/cvillecsteele/negroni-cloudwatch
package main
import (
"fmt"
"net/http"
"github.com/aws/aws-sdk-go/aws"
cw "github.com/aws/aws-sdk-go/service/cloudwatch"
"github.com/gorilla/context"
"github.com/codegangsta/negroni"
ncw "github.com/cvillecsteele/negroni-cloudwatch"
)
func main() {
r := http.NewServeMux()
r.HandleFunc(`/`, func(w http.ResponseWriter, r *http.Request) {
put := context.Get(req, ncw.PutMetric)
put([]*cw.MetricDatum{
{
MetricName: aws.String("MyMetric"),
Dimensions: []*cw.Dimension{
{
Name: aws.String("ThingOne"),
Value: aws.String("something"),
},
{
Name: aws.String("ThingTwo"),
Value: aws.String("other"),
},
},
Timestamp: aws.Time(time.Now()),
Unit: aws.String("Count"),
Value: aws.Float64(42),
},
})
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, "success!\n")
})
n := negroni.New()
n.Use(ncw.New("us-east-1", "test"))
n.UseHandler(r)
n.Run(":9999")
}