Skip to content
This repository was archived by the owner on Aug 17, 2020. It is now read-only.

Commit d294dd6

Browse files
committed
scope specification support, initial
1 parent baf0236 commit d294dd6

File tree

3 files changed

+33
-23
lines changed

3 files changed

+33
-23
lines changed

agent/agent.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ type (
4545
recorder *SpanRecorder
4646
recorderFilename string
4747
flushFrequency time.Duration
48+
concurrencyLevel int
4849

4950
optionalRecorders []tracer.SpanRecorder
5051

@@ -61,8 +62,8 @@ type (
6162
var (
6263
version = "0.1.13-pre"
6364

64-
testingModeFrequency = time.Second
65-
nonTestingModeFrequency = time.Minute
65+
testingModeFrequency = time.Duration(env.ScopeTracerDispatcherHealthcheckFrequencyInTestMode.Value) * time.Millisecond
66+
nonTestingModeFrequency = time.Duration(env.ScopeTracerDispatcherHealthcheckFrequency.Value) * time.Millisecond
6667
)
6768

6869
func WithApiKey(apiKey string) Option {
@@ -184,6 +185,7 @@ func NewAgent(options ...Option) (*Agent, error) {
184185
agent.userAgent = fmt.Sprintf("scope-agent-go/%s", agent.version)
185186
agent.panicAsFail = false
186187
agent.failRetriesCount = 0
188+
agent.concurrencyLevel = env.ScopeTracerDispatcherConcurrencyLevel.Value
187189

188190
for _, opt := range options {
189191
opt(agent)

agent/recorder.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,10 @@ type (
4141
payloadSpans []PayloadSpan
4242
payloadEvents []PayloadEvent
4343

44-
flushFrequency time.Duration
45-
url string
46-
client *http.Client
44+
flushFrequency time.Duration
45+
concurrencyLevel int
46+
url string
47+
client *http.Client
4748

4849
logger *log.Logger
4950
stats *RecorderStats
@@ -79,9 +80,13 @@ func NewSpanRecorder(agent *Agent) *SpanRecorder {
7980
r.metadata = agent.metadata
8081
r.logger = agent.logger
8182
r.flushFrequency = agent.flushFrequency
83+
r.concurrencyLevel = agent.concurrencyLevel
8284
r.url = agent.getUrl("api/agent/ingest")
8385
r.client = &http.Client{}
8486
r.stats = &RecorderStats{}
87+
88+
r.logger.Printf("recorder frequency: %v", agent.flushFrequency)
89+
r.logger.Printf("recorder concurrency level: %v", agent.concurrencyLevel)
8590
r.t.Go(r.loop)
8691
return r
8792
}

env/vars.go

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,25 @@ package env
33
import "go.undefinedlabs.com/scopeagent/tags"
44

55
var (
6-
ScopeDsn = newStringEnvVar("", "SCOPE_DSN")
7-
ScopeApiKey = newStringEnvVar("", "SCOPE_APIKEY")
8-
ScopeApiEndpoint = newStringEnvVar("https://app.scope.dev", "SCOPE_API_ENDPOINT")
9-
ScopeService = newStringEnvVar("default", "SCOPE_SERVICE")
10-
ScopeRepository = newStringEnvVar("", "SCOPE_REPOSITORY")
11-
ScopeCommitSha = newStringEnvVar("", "SCOPE_COMMIT_SHA")
12-
ScopeBranch = newStringEnvVar("", "SCOPE_BRANCH")
13-
ScopeSourceRoot = newStringEnvVar("", "SCOPE_SOURCE_ROOT")
14-
ScopeLoggerRoot = newStringEnvVar("", "SCOPE_LOGGER_ROOT", "SCOPE_LOG_ROOT_PATH")
15-
ScopeDebug = newBooleanEnvVar(false, "SCOPE_DEBUG")
16-
ScopeTracerGlobal = newBooleanEnvVar(false, "SCOPE_TRACER_GLOBAL", "SCOPE_SET_GLOBAL_TRACER")
17-
ScopeTestingMode = newBooleanEnvVar(false, "SCOPE_TESTING_MODE")
18-
ScopeTestingFailRetries = newIntEnvVar(0, "SCOPE_TESTING_FAIL_RETRIES")
19-
ScopeTestingPanicAsFail = newBooleanEnvVar(false, "SCOPE_TESTING_PANIC_AS_FAIL")
20-
ScopeConfiguration = newSliceEnvVar([]string{tags.PlatformName, tags.PlatformArchitecture, tags.GoVersion}, "SCOPE_CONFIGURATION")
21-
ScopeMetadata = newMapEnvVar(nil, "SCOPE_METADATA")
22-
ScopeInstrumentationHttpPayloads = newBooleanEnvVar(false, "SCOPE_INSTRUMENTATION_HTTP_PAYLOADS")
23-
ScopeInstrumentationDbStatementValues = newBooleanEnvVar(false, "SCOPE_INSTRUMENTATION_DB_STATEMENT_VALUES")
6+
ScopeDsn = newStringEnvVar("", "SCOPE_DSN")
7+
ScopeApiKey = newStringEnvVar("", "SCOPE_APIKEY")
8+
ScopeApiEndpoint = newStringEnvVar("https://app.scope.dev", "SCOPE_API_ENDPOINT")
9+
ScopeService = newStringEnvVar("default", "SCOPE_SERVICE")
10+
ScopeRepository = newStringEnvVar("", "SCOPE_REPOSITORY")
11+
ScopeCommitSha = newStringEnvVar("", "SCOPE_COMMIT_SHA")
12+
ScopeBranch = newStringEnvVar("", "SCOPE_BRANCH")
13+
ScopeSourceRoot = newStringEnvVar("", "SCOPE_SOURCE_ROOT")
14+
ScopeLoggerRoot = newStringEnvVar("", "SCOPE_LOGGER_ROOT", "SCOPE_LOG_ROOT_PATH")
15+
ScopeDebug = newBooleanEnvVar(false, "SCOPE_DEBUG")
16+
ScopeTracerGlobal = newBooleanEnvVar(false, "SCOPE_TRACER_GLOBAL", "SCOPE_SET_GLOBAL_TRACER")
17+
ScopeTestingMode = newBooleanEnvVar(false, "SCOPE_TESTING_MODE")
18+
ScopeTestingFailRetries = newIntEnvVar(0, "SCOPE_INSTRUMENTATION_TESTS_FRAMEWORKS_FAIL_RETRIES", "SCOPE_TESTING_FAIL_RETRIES")
19+
ScopeTestingPanicAsFail = newBooleanEnvVar(false, "SCOPE_INSTRUMENTATION_TESTS_FRAMEWORKS_PANIC_AS_FAIL", "SCOPE_TESTING_PANIC_AS_FAIL")
20+
ScopeConfiguration = newSliceEnvVar([]string{tags.PlatformName, tags.PlatformArchitecture, tags.GoVersion}, "SCOPE_CONFIGURATION")
21+
ScopeMetadata = newMapEnvVar(nil, "SCOPE_METADATA")
22+
ScopeInstrumentationHttpPayloads = newBooleanEnvVar(false, "SCOPE_INSTRUMENTATION_HTTP_PAYLOADS")
23+
ScopeInstrumentationDbStatementValues = newBooleanEnvVar(false, "SCOPE_INSTRUMENTATION_DB_STATEMENT_VALUES")
24+
ScopeTracerDispatcherHealthcheckFrequency = newIntEnvVar(60000, "SCOPE_TRACER_DISPATCHER_HEALTHCHECK_FRECUENCY")
25+
ScopeTracerDispatcherHealthcheckFrequencyInTestMode = newIntEnvVar(1000, "SCOPE_TRACER_DISPATCHER_HEALTHCHECK_FRECUENCY_IN_TESTMODE")
26+
ScopeTracerDispatcherConcurrencyLevel = newIntEnvVar(1, "SCOPE_TRACER_DISPATCHER_CONCURRENCY_LEVEL")
2427
)

0 commit comments

Comments
 (0)