/
main.go
41 lines (36 loc) · 1.23 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Copyright 2020 New Relic Corporation. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
package main
import (
"context"
"fmt"
newrelic "github.com/newrelic/go-agent"
"github.com/newrelic/go-agent/_integrations/nrlambda"
)
func handler(ctx context.Context) {
// The nrlambda handler instrumentation will add the transaction to the
// context. Access it using newrelic.FromContext to add additional
// instrumentation.
if txn := newrelic.FromContext(ctx); nil != txn {
txn.AddAttribute("userLevel", "gold")
txn.Application().RecordCustomEvent("MyEvent", map[string]interface{}{
"zip": "zap",
})
}
fmt.Println("hello world")
}
func main() {
// nrlambda.NewConfig should be used in place of newrelic.NewConfig
// since it sets Lambda specific configuration settings including
// Config.ServerlessMode.Enabled.
cfg := nrlambda.NewConfig()
// Here is the opportunity to change configuration settings before the
// application is created.
app, err := newrelic.NewApplication(cfg)
if nil != err {
fmt.Println("error creating app (invalid config):", err)
}
// nrlambda.Start should be used in place of lambda.Start.
// nrlambda.StartHandler should be used in place of lambda.StartHandler.
nrlambda.Start(handler, app)
}