negroni

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2018 License: Apache-2.0 Imports: 3 Imported by: 1

Documentation

Overview

Package negroni is a helper package to get a negroni compatible handler/middleware from the standatd net/http Middleware factory (from github.com/slok/go-prometheus-middleware).

Example (NegroniMiddleware)

NegroniMiddleware shows how you would create a default middleware factory and use it to create a Negroni compatible middleware.

package main

import (
	"log"
	"net/http"

	"github.com/prometheus/client_golang/prometheus/promhttp"
	prommiddleware "github.com/slok/go-prometheus-middleware"

	promnegroni "github.com/slok/go-prometheus-middleware/negroni"
	"github.com/urfave/negroni"
)

func main() {
	// Create our handler.
	myHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		w.WriteHeader(http.StatusOK)
		w.Write([]byte("hello world!"))
	})

	// Create our negroni instance.
	n := negroni.Classic()

	// Create our middleware factory with the default settings.
	mdlw := prommiddleware.NewDefault()
	// Add the middleware to negroni.
	n.Use(promnegroni.Handler("", mdlw))

	// Finally set our router on negroni.
	n.UseHandler(myHandler)

	// Serve metrics from the default prometheus registry.
	log.Printf("serving metrics at: %s", ":8081")
	go http.ListenAndServe(":8081", promhttp.Handler())

	// Serve our handler.
	log.Printf("listening at: %s", ":8080")
	if err := http.ListenAndServe(":8080", n); err != nil {
		log.Panicf("error while serving: %s", err)
	}
}
Output:

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Handler

func Handler(handlerID string, m prommiddleware.Middleware) negroni.Handler

Handler returns a Negroni compatible middleware from a Middleware factory instance. The first handlerID argument is the same argument passed on Middleware.Handler method.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL