static void initOptionsMetadata()

in agent/native/ext/ConfigManager.cpp [923:1237]


static void initOptionsMetadata( OptionMetadata* optsMeta )
{
    ELASTIC_APM_ASSERT_VALID_PTR( optsMeta );

    size_t i = 0;

    //
    // The order of calls to ELASTIC_APM_INIT_METADATA below should be the same as in OptionId
    //

    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            abortOnMemoryLeak,
            ELASTIC_APM_CFG_OPT_NAME_ABORT_ON_MEMORY_LEAK,
            /* defaultValue: */ ELASTIC_APM_MEMORY_TRACKING_DEFAULT_ABORT_ON_MEMORY_LEAK );

    #ifdef PHP_WIN32
    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            allowAbortDialog,
            ELASTIC_APM_CFG_OPT_NAME_ALLOW_ABORT_DIALOG,
            /* defaultValue: */ false );
    #endif

    ELASTIC_APM_INIT_SECRET_METADATA(
            buildStringOptionMetadata,
            apiKey,
            ELASTIC_APM_CFG_OPT_NAME_API_KEY,
            /* defaultValue: */ NULL );

    #if ( ELASTIC_APM_ASSERT_ENABLED_01 != 0 )
    ELASTIC_APM_ENUM_INIT_METADATA(
            /* fieldName: */ assertLevel,
            /* optName: */ ELASTIC_APM_CFG_OPT_NAME_ASSERT_LEVEL,
            /* defaultValue: */ assertLevel_not_set,
            &interpretEmptyIniRawValueAsOff,
            assertLevelNames,
            /* isUniquePrefixEnough: */ true );
    #endif

    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            astProcessEnabled,
            ELASTIC_APM_CFG_OPT_NAME_AST_PROCESS_ENABLED,
            /* defaultValue: */ false );

    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            astProcessDebugDumpConvertedBackToSource,
            ELASTIC_APM_CFG_OPT_NAME_AST_PROCESS_DEBUG_DUMP_CONVERTED_BACK_TO_SOURCE,
            /* defaultValue: */ true );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            astProcessDebugDumpForPathPrefix,
            ELASTIC_APM_CFG_OPT_NAME_AST_PROCESS_DEBUG_DUMP_FOR_PATH_PREFIX,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            astProcessDebugDumpOutDir,
            ELASTIC_APM_CFG_OPT_NAME_AST_PROCESS_DEBUG_DUMP_OUT_DIR,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildOptionalBoolOptionMetadata,
            asyncBackendComm,
            ELASTIC_APM_CFG_OPT_NAME_ASYNC_BACKEND_COMM,
            /* defaultValue: */ makeNotSetOptionalBool() );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            bootstrapPhpPartFile,
            ELASTIC_APM_CFG_OPT_NAME_BOOTSTRAP_PHP_PART_FILE,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            breakdownMetrics,
            ELASTIC_APM_CFG_OPT_NAME_BREAKDOWN_METRICS,
            /* defaultValue: */ true );

    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            captureErrors,
            ELASTIC_APM_CFG_OPT_NAME_CAPTURE_ERRORS,
            /* defaultValue: */ true );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            devInternal,
            ELASTIC_APM_CFG_OPT_NAME_DEV_INTERNAL,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            devInternalBackendCommLogVerbose,
            ELASTIC_APM_CFG_OPT_NAME_DEV_INTERNAL_BACKEND_COMM_LOG_VERBOSE,
            /* defaultValue: */ false );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            disableInstrumentations,
            ELASTIC_APM_CFG_OPT_NAME_DISABLE_INSTRUMENTATIONS,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            disableSend,
            ELASTIC_APM_CFG_OPT_NAME_DISABLE_SEND,
            /* defaultValue: */ false );

    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            enabled,
            ELASTIC_APM_CFG_OPT_NAME_ENABLED,
            /* defaultValue: */ true );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            environment,
            ELASTIC_APM_CFG_OPT_NAME_ENVIRONMENT,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            globalLabels,
            ELASTIC_APM_CFG_OPT_NAME_GLOBAL_LABELS,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            hostname,
            ELASTIC_APM_CFG_OPT_NAME_HOSTNAME,
            /* defaultValue: */ NULL );

    ELASTIC_APM_ENUM_INIT_METADATA(
            /* fieldName: */ internalChecksLevel,
            /* optName: */ ELASTIC_APM_CFG_OPT_NAME_INTERNAL_CHECKS_LEVEL,
            /* defaultValue: */ internalChecksLevel_not_set,
            &interpretEmptyIniRawValueAsOff,
            internalChecksLevelNames,
            /* isUniquePrefixEnough: */ true );

    ELASTIC_APM_INIT_METADATA(
            buildLoggingRelatedStringOptionMetadata,
            logFile,
            ELASTIC_APM_CFG_OPT_NAME_LOG_FILE,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_DYNAMIC_LOG_LEVEL_METADATA(
            logLevel,
            ELASTIC_APM_CFG_OPT_NAME_LOG_LEVEL );
    ELASTIC_APM_INIT_LOG_LEVEL_METADATA(
            logLevelFile,
            ELASTIC_APM_CFG_OPT_NAME_LOG_LEVEL_FILE );
    ELASTIC_APM_INIT_LOG_LEVEL_METADATA(
            logLevelStderr,
            ELASTIC_APM_CFG_OPT_NAME_LOG_LEVEL_STDERR );
    #ifndef PHP_WIN32
    ELASTIC_APM_INIT_LOG_LEVEL_METADATA(
            logLevelSyslog,
            ELASTIC_APM_CFG_OPT_NAME_LOG_LEVEL_SYSLOG );
    #endif
    #ifdef PHP_WIN32
    ELASTIC_APM_INIT_LOG_LEVEL_METADATA(
            logLevelWinSysDebug,
            ELASTIC_APM_CFG_OPT_NAME_LOG_LEVEL_WIN_SYS_DEBUG );
    #endif

    #if ( ELASTIC_APM_MEMORY_TRACKING_ENABLED_01 != 0 )
    ELASTIC_APM_ENUM_INIT_METADATA(
            /* fieldName: */ memoryTrackingLevel,
            /* optName: */ ELASTIC_APM_CFG_OPT_NAME_MEMORY_TRACKING_LEVEL,
            /* defaultValue: */ memoryTrackingLevel_not_set,
            &interpretEmptyIniRawValueAsOff,
            memoryTrackingLevelNames,
            /* isUniquePrefixEnough: */ true );
    #endif

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            nonKeywordStringMaxLength,
            ELASTIC_APM_CFG_OPT_NAME_NON_KEYWORD_STRING_MAX_LENGTH,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            profilingInferredSpansEnabled,
            ELASTIC_APM_CFG_OPT_NAME_PROFILING_INFERRED_SPANS_ENABLED,
            /* defaultValue: */ false );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            profilingInferredSpansMinDuration,
            ELASTIC_APM_CFG_OPT_NAME_PROFILING_INFERRED_SPANS_MIN_DURATION,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            profilingInferredSpansSamplingInterval,
            ELASTIC_APM_CFG_OPT_NAME_PROFILING_INFERRED_SPANS_SAMPLING_INTERVAL,
            "50ms" );

    ELASTIC_APM_INIT_SECRET_METADATA(
            buildStringOptionMetadata,
            sanitizeFieldNames,
            ELASTIC_APM_CFG_OPT_NAME_SANITIZE_FIELD_NAMES,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_SECRET_METADATA(
            buildStringOptionMetadata,
            secretToken,
            ELASTIC_APM_CFG_OPT_NAME_SECRET_TOKEN,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_DURATION_METADATA(
            serverTimeout
            , ELASTIC_APM_CFG_OPT_NAME_SERVER_TIMEOUT
            , /* defaultValue */ makeDuration( 30, durationUnits_second )
            , /* defaultUnits: */ durationUnits_second
            , /* isNegativeValid */ false );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            serverUrl,
            ELASTIC_APM_CFG_OPT_NAME_SERVER_URL,
            /* defaultValue: */ "http://localhost:8200" );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            serviceName,
            ELASTIC_APM_CFG_OPT_NAME_SERVICE_NAME,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            serviceNodeName,
            ELASTIC_APM_CFG_OPT_NAME_SERVICE_NODE_NAME,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            serviceVersion,
            ELASTIC_APM_CFG_OPT_NAME_SERVICE_VERSION,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            spanCompressionEnabled,
            ELASTIC_APM_CFG_OPT_NAME_SPAN_COMPRESSION_ENABLED,
            /* defaultValue: */ true );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            spanCompressionExactMatchMaxDuration,
            ELASTIC_APM_CFG_OPT_NAME_SPAN_COMPRESSION_EXACT_MATCH_MAX_DURATION,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            spanCompressionSameKindMaxDuration,
            ELASTIC_APM_CFG_OPT_NAME_SPAN_COMPRESSION_SAME_KIND_MAX_DURATION,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            spanStackTraceMinDuration,
            ELASTIC_APM_CFG_OPT_NAME_SPAN_STACK_TRACE_MIN_DURATION,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            stackTraceLimit,
            ELASTIC_APM_CFG_OPT_NAME_STACK_TRACE_LIMIT,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            transactionIgnoreUrls,
            ELASTIC_APM_CFG_OPT_NAME_TRANSACTION_IGNORE_URLS,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            transactionMaxSpans,
            ELASTIC_APM_CFG_OPT_NAME_TRANSACTION_MAX_SPANS,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            transactionSampleRate,
            ELASTIC_APM_CFG_OPT_NAME_TRANSACTION_SAMPLE_RATE,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            urlGroups,
            ELASTIC_APM_CFG_OPT_NAME_URL_GROUPS,
            /* defaultValue: */ NULL );

    ELASTIC_APM_INIT_METADATA(
            buildBoolOptionMetadata,
            verifyServerCert,
            ELASTIC_APM_CFG_OPT_NAME_VERIFY_SERVER_CERT,
            /* defaultValue: */ true );

    ELASTIC_APM_INIT_METADATA(
            buildStringOptionMetadata,
            debugDiagnosticsFile,
            ELASTIC_APM_CFG_OPT_NAME_DEBUG_DIAGNOSTICS_FILE,
            /* defaultValue: */ nullptr );

    ELASTIC_APM_ASSERT_EQ_UINT64( i, numberOfOptions );
}