This is a settings
that enables
constructing a metrics gathering component that integrates with the
http.Server.ConnState
hook. It
works by tracking the state of all active connections and any state changes of
a connection while the server runs.
package main
import (
"context"
"net/http"
stat "github.com/asecurityteam/component-stat"
stat "github.com/asecurityteam/component-connstate"
"github.com/asecurityteam/settings/v2"
)
func main() {
ctx := context.Background()
envSource := settings.NewEnvSource(os.Environ())
s, _ := stat.New(ctx, envSource)
cs, _ := connstate.Load(ctx, envSource, connstate.NewComponent().WithStat(s))
defer cs.Close()
srv := &http.Server{
ConnState: cs.HandleEvent,
}
go cs.Report()
_ = srv.ListenAndServe()
}
This project is in incubation which means we are not yet operating this tool in production and the interfaces are subject to change.
We publish a docker image called SDCLI that bundles all of our build dependencies. It is used by the included Makefile to help make building and testing a bit easier. The following actions are available through the Makefile:
-
make dep
Install the project dependencies into a vendor directory
-
make lint
Run our static analysis suite
-
make test
Run unit tests and generate a coverage artifact
-
make integration
Run integration tests and generate a coverage artifact
-
make coverage
Report the combined coverage for unit and integration tests
This project is licensed under Apache 2.0. See LICENSE.txt for details.
Atlassian requires signing a contributor's agreement before we can accept a patch. If you are an individual you can fill out the individual CLA. If you are contributing on behalf of your company then please fill out the corporate CLA.