go-agent | Sqreen 's Application Security Management for the Go language | Security library
kandi X-RAY | go-agent Summary
kandi X-RAY | go-agent Summary
After performance monitoring (APM), error and log monitoring it’s time to add a security component into your app. Sqreen’s microagent automatically monitors sensitive app’s routines, blocks attacks and reports actionable infos to your dashboard.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of go-agent
go-agent Key Features
go-agent Examples and Code Snippets
Community Discussions
Trending Discussions on go-agent
QUESTION
I am creating new relic transaction in main.go and have to pass it along to handler and then to controller and so on. Is there a way i can define this globally and then can be accessed in any handler, controller or and db transaction?
...ANSWER
Answered 2021-Oct-17 at 07:08Avoid using a global context, rather create one at the entrypoint and then just pass it as an argument to any function that needs it.
You can make use of the nrgin
package provided by the Gin framework.
And in the main()
function
- Create an instance of newrelic -
newrelic.NewApplication(cfg)
- Call the -
nrgin.Middleware(app)
function passing in the newrelic instance. This will add the Gin transaction context key -newRelicTransaction
to the context. - Register the function in step 2 as a middleware for all your routes -
router.Use(nrgin.Middleware(app))
You can then pass this same context object to your other functions that can accept a parameter of type context.Context
since gin.Context
is simply implementing the context
interface of Go.
Example code
QUESTION
I am using the gin-gonic, newrelic go-agent v3, and nrgin v3
I am trying to figure out how to propagate a custom error message from a Handler so that it shows up in New Relic.
What I see now is that when I have a handler that returns with a http.StatusInternalServerError, the error message shows up in New Relic as "500: Internal Server Error".
I'd like to figure out how to have that be suffixed with the message in the error being thrown.
Here's what I'm doing now, and it's clearly not working:
...ANSWER
Answered 2021-May-13 at 19:02I think you have to set the error on the transaction manually.
The nrgin
middleware doesn't do anything after c.Next
, which is where you would typically inspect errors, however it does set the newrelic.Transaction
into the Gin context:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install go-agent
Use the middleware function for the Go web framework you use: net/http Gin Echo If your framework is not listed, it is usually possible to use instead the standard net/http middleware. If not, please, let us know by creating an issue.
Compile your program with Sqreen Sqreen's dynamic configuration of your protection is made possible thanks to Go instrumentation. It is safely performed at compilation time by the following instrumentation tool. Install the following instrumentation tool and compile your program using it in order to enable Sqreen. Use go install to compile the instrumentation tool: $ go install github.com/sqreen/go-agent/sdk/sqreen-instrumentation-tool By default, the resulting sqreen-instrumentation-tool tool is installed in the bin directory of the GOPATH. You can find it using go env GOPATH. Configure the Go toolchain to use it: Use the instrumentation tool using the go options -a -toolexec /path/to/sqreen-instrumentation-tool. It can be done either in your Go compilation command lines or by setting the GOFLAGS environment variable. For example, the following two commands are equivalent: $ go build -a -toolexec $(go env GOPATH)/bin/sqreen-instrumentation-tool my-project $ env GOFLAGS="-a -toolexec $(go env GOPATH)/bin/sqreen-instrumentation-tool" go build my-project
Signup to Sqreen to get your app credentials: app_name: Your Go app name token: your token This file can be stored in your current working directory when starting the executable, the same directory as your app's executable file, or in any other path by defining the configuration file location into the environment variable SQREEN_CONFIG_FILE.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page