From 6519b9386af7181bf9c9cc320ce297798e48395b Mon Sep 17 00:00:00 2001 From: Nithin P Date: Tue, 3 Sep 2024 20:54:43 +0530 Subject: [PATCH] review comments --- README.md | 2 +- ...verless.md => generic_serverless_agent.md} | 0 generic_serverless_agent.go | 19 +++++++++++-------- 3 files changed, 12 insertions(+), 9 deletions(-) rename docs/{generic_serverless.md => generic_serverless_agent.md} (100%) diff --git a/README.md b/README.md index 7506d6204..c7fad4660 100644 --- a/README.md +++ b/README.md @@ -212,7 +212,7 @@ Another interesting feature is the usage of additional packages located under [i 1. [Tracing an application running on Azure Container Apps](docs/azure_container_apps.md) 1. [Tracing Other Go Packages](docs/other_packages.md) 1. [Instrumenting Code Manually](docs/manual_instrumentation.md) -1. [Generic Serverless Agent](/docs/generic_serverless.md) +1. [Generic Serverless Agent](/docs/generic_serverless_agent.md) diff --git a/docs/generic_serverless.md b/docs/generic_serverless_agent.md similarity index 100% rename from docs/generic_serverless.md rename to docs/generic_serverless_agent.md diff --git a/generic_serverless_agent.go b/generic_serverless_agent.go index a0c9d41e5..46b34761b 100644 --- a/generic_serverless_agent.go +++ b/generic_serverless_agent.go @@ -1,4 +1,4 @@ -// (c) Copyright IBM Corp. 2022 +// (c) Copyright IBM Corp. 2024 package instana @@ -44,12 +44,14 @@ func newGenericServerlessAgent(acceptorEndpoint, agentKey string, client *http.C if client == nil { client = http.DefaultClient - // TODO: defaultServerlessTimeout is increased from 500 millisecond to 2 second - // as serverless API latency is high. This should be reduced once latency is minimized. + // You can change this timeout by setting the INSTANA_TIMEOUT environment variable. client.Timeout = 2 * time.Second } - logger.Debug("initializing local serverless agent") + logger.Debug("initializing generic serverless agent") + + // Creating a unique serverless host ID. + uniqHostId := "Generic_Serverless_Agent" + uuid.New().String() agent := &genericServerlessAgent{ Endpoint: acceptorEndpoint, @@ -57,6 +59,10 @@ func newGenericServerlessAgent(acceptorEndpoint, agentKey string, client *http.C PID: os.Getpid(), client: client, logger: logger, + snapshot: serverlessSnapshot{ + Host: uniqHostId, + EntityID: uniqHostId, + }, } go func() { @@ -87,10 +93,7 @@ func (a *genericServerlessAgent) SendSpans(spans []Span) error { func (a *genericServerlessAgent) SendProfiles([]autoprofile.Profile) error { return nil } func (a *genericServerlessAgent) Flush(ctx context.Context) error { - // Since we currently don't send metrics in the generic_serverless setup and infrastructure correlation isn't possible, - // these values can be anything. We just need to ensure there's no conflict with the existing infrastructure tags. - // This will need to change if we add metrics and infrastructure correlation in the future. - from := newServerlessAgentFromS("Generic_Serverless_Agent"+uuid.New().String(), "generic_serverless") + from := newServerlessAgentFromS(a.snapshot.EntityID, "generic_serverless") payload := struct { Spans []Span `json:"spans,omitempty"`