# Check if the API key is the correct number of characters if len(DD_API_KEY) != 32: raise Exception( "The API key is not the expected length. " "Please confirm that your API key is correct" ) # Validate the API key validation_res = requests.get( "{}/api/v1/validate?api_key={}".format(DD_API_URL, DD_API_KEY) ) if not validation_res.ok: raise Exception("The API key is not valid.") trace_connection = None if DD_FORWARD_TRACES: trace_connection = TraceConnection(DD_TRACE_INTAKE_URL, DD_API_KEY) # DD_MULTILINE_LOG_REGEX_PATTERN: Multiline Log Regular Expression Pattern DD_MULTILINE_LOG_REGEX_PATTERN = get_env_var( "DD_MULTILINE_LOG_REGEX_PATTERN", default=None ) if DD_MULTILINE_LOG_REGEX_PATTERN: try: multiline_regex = re.compile( "[\n\r\f]+(?={})".format(DD_MULTILINE_LOG_REGEX_PATTERN) ) except Exception: raise Exception( "could not compile multiline regex with pattern: {}".format( DD_MULTILINE_LOG_REGEX_PATTERN )
raise Exception("The API key is not the expected length. " "Please confirm that your API key is correct") # Validate the API key validation_res = requests.get( "{}/api/v1/validate?api_key={}".format(DD_API_URL, DD_API_KEY), verify=(not DD_SKIP_SSL_VALIDATION), ) if not validation_res.ok: raise Exception("The API key is not valid.") # Force the layer to use the exact same API key and host as the forwarder api._api_key = DD_API_KEY api._api_host = DD_API_URL api._cacert = not DD_SKIP_SSL_VALIDATION trace_connection = TraceConnection(DD_TRACE_INTAKE_URL, DD_API_KEY, DD_SKIP_SSL_VALIDATION) # Use for include, exclude, and scrubbing rules def compileRegex(rule, pattern): if pattern is not None: if pattern == "": # If pattern is an empty string, raise exception raise Exception( "No pattern provided:\nAdd pattern or remove {} environment variable" .format(rule)) try: return re.compile(pattern) except Exception: raise Exception( "could not compile {} regex with pattern: {}".format(
if DD_API_KEY == "<YOUR_DATADOG_API_KEY>" or DD_API_KEY == "": raise Exception("You must configure your Datadog API key using " "DD_KMS_API_KEY or DD_API_KEY") # Check if the API key is the correct number of characters if len(DD_API_KEY) != 32: raise Exception("The API key is not the expected length. " "Please confirm that your API key is correct") # Validate the API key validation_res = requests.get( "https://api.{}/api/v1/validate?api_key={}".format(DD_SITE, DD_API_KEY)) if not validation_res.ok: raise Exception("The API key is not valid.") trace_connection = None if DD_FORWARD_TRACES: trace_connection = TraceConnection( "https://trace.agent.{}".format(DD_SITE), DD_API_KEY) # DD_MULTILINE_LOG_REGEX_PATTERN: Datadog Multiline Log Regular Expression Pattern DD_MULTILINE_LOG_REGEX_PATTERN = None if "DD_MULTILINE_LOG_REGEX_PATTERN" in os.environ: DD_MULTILINE_LOG_REGEX_PATTERN = os.environ[ "DD_MULTILINE_LOG_REGEX_PATTERN"] try: multiline_regex = re.compile( "[\n\r\f]+(?={})".format(DD_MULTILINE_LOG_REGEX_PATTERN)) except Exception: raise Exception( "could not compile multiline regex with pattern: {}".format( DD_MULTILINE_LOG_REGEX_PATTERN)) multiline_regex_start_pattern = re.compile( "^{}".format(DD_MULTILINE_LOG_REGEX_PATTERN))