diff --git a/.gitignore b/.gitignore index c001eee2..50801e5e 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,6 @@ nosetests.xml .eggs/ .env/ .idea/ + + +**/.serverless/ \ No newline at end of file diff --git a/datadog_lambda/patch.py b/datadog_lambda/patch.py index d03ce2be..98dc143a 100644 --- a/datadog_lambda/patch.py +++ b/datadog_lambda/patch.py @@ -3,6 +3,8 @@ # This product includes software developed at Datadog (https://www.datadoghq.com/). # Copyright 2019 Datadog, Inc. +import json +import os import sys import logging @@ -13,9 +15,9 @@ logger = logging.getLogger(__name__) if sys.version_info >= (3, 0, 0): - httplib_module = 'http.client' + httplib_module = "http.client" else: - httplib_module = 'httplib' + httplib_module = "httplib" _httplib_patched = False _requests_patched = False @@ -38,12 +40,9 @@ def _patch_httplib(): global _httplib_patched if not _httplib_patched: _httplib_patched = True - wrap( - httplib_module, - 'HTTPConnection.request', - _wrap_httplib_request - ) - logger.debug('Patched %s', httplib_module) + wrap(httplib_module, "HTTPConnection.request", _wrap_httplib_request) + + logger.debug("Patched %s", httplib_module) def _patch_requests(): @@ -55,14 +54,10 @@ def _patch_requests(): if not _requests_patched: _requests_patched = True try: - wrap( - 'requests', - 'Session.request', - _wrap_requests_request - ) - logger.debug('Patched requests') + wrap("requests", "Session.request", _wrap_requests_request) + logger.debug("Patched requests") except Exception: - logger.debug('Failed to patch requests', exc_info=True) + logger.debug("Failed to patch requests", exc_info=True) def _wrap_requests_request(func, instance, args, kwargs): @@ -71,12 +66,17 @@ def _wrap_requests_request(func, instance, args, kwargs): into the outgoing requests. """ context = get_dd_trace_context() - if 'headers' in kwargs: - kwargs['headers'].update(context) + if "headers" in kwargs: + kwargs["headers"].update(context) elif len(args) >= 5: args[4].update(context) else: - kwargs['headers'] = context + kwargs["headers"] = context + + # If we're in an integration test, log the HTTP requests made + if os.environ.get("DD_INTEGRATION_TEST", "false").lower() == "true": + _print_request_string(args, kwargs) + return func(*args, **kwargs) @@ -86,10 +86,49 @@ def _wrap_httplib_request(func, instance, args, kwargs): the Datadog trace headers into the outgoing requests. """ context = get_dd_trace_context() - if 'headers' in kwargs: - kwargs['headers'].update(context) + if "headers" in kwargs: + kwargs["headers"].update(context) elif len(args) >= 4: args[3].update(context) else: - kwargs['headers'] = context + kwargs["headers"] = context + return func(*args, **kwargs) + + +def _print_request_string(args, kwargs): + """Print the request so that it can be checked in integration tests + + Only used by integration tests. + """ + # Normalizes the different ways args can be passed to a request + # to prevent test flakiness + method = None + if len(args) > 0: + method = args[0] + else: + method = kwargs.get("method", "").upper() + + url = None + if len(args) > 1: + url = args[1] + else: + url = kwargs.get("url") + + # Sort the datapoints POSTed by their name so that snapshots always align + data = kwargs.get("data", "{}") + data_dict = json.loads(data) + data_dict.get("series", []).sort(key=lambda series: series.get("metric")) + sorted_data = json.dumps(data_dict) + + # Sort headers to prevent any differences in ordering + headers = kwargs.get("headers", {}) + sorted_headers = sorted( + "{}:{}".format(key, value) for key, value in headers.items() + ) + sorted_header_str = json.dumps(sorted_headers) + print( + "HTTP {} {} Headers: {} Data: {}".format( + method, url, sorted_header_str, sorted_data + ) + ) diff --git a/scripts/run_integration_tests.sh b/scripts/run_integration_tests.sh new file mode 100755 index 00000000..c9f7df55 --- /dev/null +++ b/scripts/run_integration_tests.sh @@ -0,0 +1,157 @@ +#!/bin/bash + +# Usage - run commands from repo root: +# To check if new changes to the layer cause changes to any snapshots: +# BUILD_LAYERS=true DD_API_KEY=XXXX aws-vault exec sandbox-account-admin -- ./scripts/run_integration_tests +# To regenerate snapshots: +# UPDATE_SNAPSHOTS=true DD_API_KEY=XXXX aws-vault exec sandbox-account-admin -- ./scripts/run_integration_tests + +set -e + +# These values need to be in sync with serverless.yml, where there needs to be a function +# defined for every handler_runtime combination +LAMBDA_HANDLERS=("async-metrics" "sync-metrics" "http-requests") +RUNTIMES=("python27" "python36" "python37" "python38") + +LOGS_WAIT_SECONDS=20 + +script_path=${BASH_SOURCE[0]} +scripts_dir=$(dirname $script_path) +repo_dir=$(dirname $scripts_dir) +integration_tests_dir="$repo_dir/tests/integration" + +script_start_time=$(date --iso-8601=seconds) + +mismatch_found=false + +if [ -z "$DD_API_KEY" ]; then + echo "No DD_API_KEY env var set, exiting" + exit 1 +fi + +if [ -n "$UPDATE_SNAPSHOTS" ]; then + echo "Overwriting snapshots in this execution" +fi + +if [ -n "$BUILD_LAYERS" ]; then + echo "Building layers that will be deployed with our test functions" + source $scripts_dir/build_layers.sh +else + echo "Not building layers, ensure they've already been built or re-run with 'BUILD_LAYERS=true DD_API_KEY=XXXX ./scripts/run_integration_tests.sh'" +fi + +cd $integration_tests_dir +input_event_files=$(ls ./input_events) +# Sort event files by name so that snapshots stay consistent +input_event_files=($(for file_name in ${input_event_files[@]}; do echo $file_name; done | sort)) + +echo "Deploying functions" +serverless deploy + +echo "Invoking functions" +set +e # Don't exit this script if an invocation fails or there's a diff +for handler_name in "${LAMBDA_HANDLERS[@]}"; do + for runtime in "${RUNTIMES[@]}"; do + function_name="${handler_name}_${runtime}" + # Invoke function once for each input event + for input_event_file in "${input_event_files[@]}"; do + # Get event name without trailing ".json" so we can build the snapshot file name + input_event_name=$(echo "$input_event_file" | sed "s/.json//") + # Return value snapshot file format is snapshots/return_values/{handler}_{runtime}_{input-event} + snapshot_path="./snapshots/return_values/${function_name}_${input_event_name}.json" + + return_value=$(serverless invoke -f $function_name --path "./input_events/$input_event_file") + + if [ ! -f $snapshot_path ]; then + # If the snapshot file doesn't exist yet, we create it + echo "Writing return value to $snapshot_path because no snapshot exists yet" + echo "$return_value" >$snapshot_path + elif [ -n "$UPDATE_SNAPSHOTS" ]; then + # If $UPDATE_SNAPSHOTS is set to true, write the new logs over the current snapshot + echo "Overwriting return value snapshot for $snapshot_path" + echo "$return_value" >$snapshot_path + else + # Compare new return value to snapshot + diff_output=$(echo "$return_value" | diff - $snapshot_path) + if [ $? -eq 1 ]; then + echo "Failed: Return value for $function_name does not match snapshot:" + echo "$diff_output" + mismatch_found=true + else + echo "Ok: Return value for $function_name with $input_event_name event matches snapshot" + fi + fi + done + + done + +done +set -e + +echo "Sleeping $LOGS_WAIT_SECONDS seconds to wait for logs to appear in CloudWatch..." +sleep $LOGS_WAIT_SECONDS + +echo "Fetching logs for invocations and comparing to snapshots" +for handler_name in "${LAMBDA_HANDLERS[@]}"; do + for runtime in "${RUNTIMES[@]}"; do + function_name="${handler_name}_${runtime}" + function_snapshot_path="./snapshots/logs/$function_name.log" + + # Fetch logs with serverless cli + raw_logs=$(serverless logs -f $function_name --startTime $script_start_time) + + # Replace invocation-specific data like timestamps and IDs with XXXX to normalize logs across executions + logs=$( + echo "$raw_logs" | + # Filter serverless cli errors + sed '/Serverless: Recoverable error occurred/d' | + # Remove blank lines + sed '/^$/d' | + # Normalize Lambda runtime report logs + sed -E 's/(RequestId|TraceId|SegmentId|Duration|Memory Used|"e"): [a-z0-9\.\-]+/\1: XXXX/g' | + # Normalize DD APM headers and AWS account ID + sed -E "s/(x-datadog-parent-id:|x-datadog-trace-id:|account_id:)[0-9]+/\1XXXX/g" | + # Normalize timestamps in datapoints POSTed to DD + sed -E 's/"points": \[\[[0-9\.]+,/"points": \[\[XXXX,/g' | + # Strip API key from logged requests + sed -E "s/(api_key=|'api_key': ')[a-z0-9\.\-]+/\1XXXX/g" | + # Normalize minor package version so that these snapshots aren't broken on version bumps + sed -E "s/(dd_lambda_layer:datadog-python[0-9]+_2\.)[0-9]+\.0/\1XX\.0/g" + ) + + if [ ! -f $function_snapshot_path ]; then + # If no snapshot file exists yet, we create one + echo "Writing logs to $function_snapshot_path because no snapshot exists yet" + echo "$logs" >$function_snapshot_path + elif [ -n "$UPDATE_SNAPSHOTS" ]; then + # If $UPDATE_SNAPSHOTS is set to true write the new logs over the current snapshot + echo "Overwriting log snapshot for $function_snapshot_path" + echo "$logs" >$function_snapshot_path + else + # Compare new logs to snapshots + set +e # Don't exit this script if there is a diff + diff_output=$(echo "$logs" | diff - $function_snapshot_path) + if [ $? -eq 1 ]; then + echo "Failed: Mismatch found between new $function_name logs (first) and snapshot (second):" + echo "$diff_output" + mismatch_found=true + else + echo "Ok: New logs for $function_name match snapshot" + fi + set -e + fi + done +done + +if [ "$mismatch_found" = true ]; then + echo "FAILURE: A mismatch between new data and a snapshot was found and printed above." + echo "If the change is expected, generate new snapshots by running 'UPDATE_SNAPSHOTS=true DD_API_KEY=XXXX ./scripts/run_integration_tests.sh'" + exit 1 +fi + +if [ -n "$UPDATE_SNAPSHOTS" ]; then + echo "SUCCESS: Wrote new snapshots for all functions" + exit 0 +fi + +echo "SUCCESS: No difference found between snapshots and new return values or logs" diff --git a/tests/integration/handle.py b/tests/integration/handle.py new file mode 100644 index 00000000..067680c6 --- /dev/null +++ b/tests/integration/handle.py @@ -0,0 +1,34 @@ +import json + +from datadog_lambda.metric import lambda_metric +from datadog_lambda.wrapper import datadog_lambda_wrapper + + +@datadog_lambda_wrapper +def handle(event, context): + # Parse request ID and record ids out of the event to include in the response + request_id = event.get("requestContext", {}).get("requestId") + event_records = event.get("Records", []) + + record_ids = [] + for record in event_records: + # SQS + if record.get("messageId"): + record_ids.append(record["messageId"]) + # SNS + if record.get("Sns", {}).get("MessageId"): + record_ids.append(record["Sns"]["MessageId"]) + + lambda_metric("hello.dog", 1, tags=["team:serverless", "role:hello"]) + lambda_metric( + "tests.integration.count", 21, tags=["test:integration", "role:hello"] + ) + + return { + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": request_id, + "event_record_ids": record_ids, + }, + } diff --git a/tests/integration/http_requests.py b/tests/integration/http_requests.py new file mode 100644 index 00000000..472de310 --- /dev/null +++ b/tests/integration/http_requests.py @@ -0,0 +1,18 @@ +import json +import requests + +from datadog_lambda.metric import lambda_metric +from datadog_lambda.wrapper import datadog_lambda_wrapper + + +@datadog_lambda_wrapper +def handle(event, context): + lambda_metric("hello.dog", 1, tags=["team:serverless", "role:hello"]) + lambda_metric( + "tests.integration.count", 21, tags=["test:integration", "role:hello"] + ) + + us_response = requests.get("https://ip-ranges.datadoghq.com/") + eu_response = requests.get("https://ip-ranges.datadoghq.eu/") + + return {"statusCode": 200, "body": {"message": "hello, dog!"}} diff --git a/tests/integration/input_events/api-gateway-get.json b/tests/integration/input_events/api-gateway-get.json new file mode 100644 index 00000000..496553de --- /dev/null +++ b/tests/integration/input_events/api-gateway-get.json @@ -0,0 +1,55 @@ +{ + "path": "/test/hello", + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", + "Accept-Encoding": "gzip, deflate, lzma, sdch, br", + "Accept-Language": "en-US,en;q=0.8", + "CloudFront-Forwarded-Proto": "https", + "CloudFront-Is-Desktop-Viewer": "true", + "CloudFront-Is-Mobile-Viewer": "false", + "CloudFront-Is-SmartTV-Viewer": "false", + "CloudFront-Is-Tablet-Viewer": "false", + "CloudFront-Viewer-Country": "US", + "Host": "wt6mne2s9k.execute-api.us-west-2.amazonaws.com", + "Upgrade-Insecure-Requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 OPR/39.0.2256.48", + "Via": "1.1 fb7cca60f0ecd82ce07790c9c5eef16c.cloudfront.net (CloudFront)", + "X-Amz-Cf-Id": "nBsWBOrSHMgnaROZJK1wGCZ9PcRcSpq_oSXZNQwQ10OTZL4cimZo3g==", + "X-Forwarded-For": "192.168.100.1, 192.168.1.1", + "X-Forwarded-Port": "443", + "X-Forwarded-Proto": "https" + }, + "pathParameters": { + "proxy": "hello" + }, + "requestContext": { + "accountId": "123456789012", + "resourceId": "us4z18", + "stage": "test", + "requestId": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", + "identity": { + "cognitoIdentityPoolId": "", + "accountId": "", + "cognitoIdentityId": "", + "caller": "", + "apiKey": "", + "sourceIp": "192.168.100.1", + "cognitoAuthenticationType": "", + "cognitoAuthenticationProvider": "", + "userArn": "", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 OPR/39.0.2256.48", + "user": "" + }, + "resourcePath": "/{proxy+}", + "httpMethod": "GET", + "apiId": "wt6mne2s9k" + }, + "resource": "/{proxy+}", + "httpMethod": "GET", + "queryStringParameters": { + "name": "me" + }, + "stageVariables": { + "stageVarName": "stageVarValue" + } +} diff --git a/tests/integration/input_events/sns.json b/tests/integration/input_events/sns.json new file mode 100644 index 00000000..a96a2ee8 --- /dev/null +++ b/tests/integration/input_events/sns.json @@ -0,0 +1,31 @@ +{ + "Records": [ + { + "EventVersion": "1.0", + "EventSubscriptionArn": "arn:aws:sns:us-east-2:123456789012:sns-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", + "EventSource": "aws:sns", + "Sns": { + "SignatureVersion": "1", + "Timestamp": "2019-01-02T12:45:07.000Z", + "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", + "SigningCertUrl": "https://sns.us-east-2.amazonaws.com/SimpleNotificationService-ac565b8b1a6c5d002d285f9598aa1d9b.pem", + "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", + "Message": "Hello from SNS!", + "MessageAttributes": { + "Test": { + "Type": "String", + "Value": "TestString" + }, + "TestBinary": { + "Type": "Binary", + "Value": "TestBinary" + } + }, + "Type": "Notification", + "UnsubscribeUrl": "https://sns.us-east-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-2:123456789012:test-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", + "TopicArn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", + "Subject": "TestInvoke" + } + } + ] +} diff --git a/tests/integration/input_events/sqs.json b/tests/integration/input_events/sqs.json new file mode 100644 index 00000000..140f9604 --- /dev/null +++ b/tests/integration/input_events/sqs.json @@ -0,0 +1,36 @@ +{ + "Records": [ + { + "messageId": "059f36b4-87a3-44ab-83d2-661975830a7d", + "receiptHandle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "body": "Test message.", + "attributes": { + "ApproximateReceiveCount": "1", + "SentTimestamp": "1545082649183", + "SenderId": "AIDAIENQZJOLO23YVJ4VO", + "ApproximateFirstReceiveTimestamp": "1545082649185" + }, + "messageAttributes": {}, + "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", + "eventSource": "aws:sqs", + "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue", + "awsRegion": "us-east-2" + }, + { + "messageId": "2e1424d4-f796-459a-8184-9c92662be6da", + "receiptHandle": "AQEBzWwaftRI0KuVm4tP+/7q1rGgNqicHq...", + "body": "Test message.", + "attributes": { + "ApproximateReceiveCount": "1", + "SentTimestamp": "1545082650636", + "SenderId": "AIDAIENQZJOLO23YVJ4VO", + "ApproximateFirstReceiveTimestamp": "1545082650649" + }, + "messageAttributes": {}, + "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", + "eventSource": "aws:sqs", + "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue", + "awsRegion": "us-east-2" + } + ] +} diff --git a/tests/integration/serverless.yml b/tests/integration/serverless.yml new file mode 100644 index 00000000..b4422c50 --- /dev/null +++ b/tests/integration/serverless.yml @@ -0,0 +1,108 @@ +service: integration-tester + +provider: + name: aws + tracing: + lambda: true + apiGateway: true + environment: + DD_INTEGRATION_TEST: true + DD_API_KEY: ${env:DD_API_KEY} + +layers: + python27: + package: + artifact: ../../.layers/datadog_lambda_py2.7.zip + python36: + package: + artifact: ../../.layers/datadog_lambda_py3.6.zip + python37: + package: + artifact: ../../.layers/datadog_lambda_py3.7.zip + python38: + package: + artifact: ../../.layers/datadog_lambda_py3.8.zip + +functions: + # async-metrics + async-metrics_python27: + handler: handle.handle + runtime: python2.7 + layers: + - { Ref: Python27LambdaLayer } + environment: + DD_FLUSH_TO_LOG: true + + async-metrics_python36: + handler: handle.handle + runtime: python3.6 + layers: + - { Ref: Python36LambdaLayer } + environment: + DD_FLUSH_TO_LOG: true + + async-metrics_python37: + handler: handle.handle + runtime: python3.7 + layers: + - { Ref: Python37LambdaLayer } + environment: + DD_FLUSH_TO_LOG: true + + async-metrics_python38: + handler: handle.handle + runtime: python3.8 + layers: + - { Ref: Python38LambdaLayer } + environment: + DD_FLUSH_TO_LOG: true + + # sync-metrics + sync-metrics_python27: + handler: handle.handle + runtime: python2.7 + layers: + - { Ref: Python27LambdaLayer } + + sync-metrics_python36: + handler: handle.handle + runtime: python3.6 + layers: + - { Ref: Python36LambdaLayer } + + sync-metrics_python37: + handler: handle.handle + runtime: python3.7 + layers: + - { Ref: Python37LambdaLayer } + + sync-metrics_python38: + handler: handle.handle + runtime: python3.8 + layers: + - { Ref: Python38LambdaLayer } + + # http-requests + http-requests_python27: + handler: http_requests.handle + runtime: python2.7 + layers: + - { Ref: Python27LambdaLayer } + + http-requests_python36: + handler: http_requests.handle + runtime: python3.6 + layers: + - { Ref: Python36LambdaLayer } + + http-requests_python37: + handler: http_requests.handle + runtime: python3.7 + layers: + - { Ref: Python37LambdaLayer } + + http-requests_python38: + handler: http_requests.handle + runtime: python3.8 + layers: + - { Ref: Python38LambdaLayer } diff --git a/tests/integration/snapshots/logs/async-metrics_python27.log b/tests/integration/snapshots/logs/async-metrics_python27.log new file mode 100644 index 00000000..b5160960 --- /dev/null +++ b/tests/integration/snapshots/logs/async-metrics_python27.log @@ -0,0 +1,21 @@ +START RequestId: XXXX Version: $LATEST +{"e": XXXX, "m": "aws.lambda.enhanced.invocations", "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python27", "cold_start:true", "memorysize:1024", "runtime:python2.7", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +{"e": XXXX, "m": "hello.dog", "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +{"e": XXXX, "m": "tests.integration.count", "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 21} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"e": XXXX, "m": "aws.lambda.enhanced.invocations", "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python27", "cold_start:false", "memorysize:1024", "runtime:python2.7", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +{"e": XXXX, "m": "hello.dog", "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +{"e": XXXX, "m": "tests.integration.count", "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 21} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"e": XXXX, "m": "aws.lambda.enhanced.invocations", "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python27", "cold_start:false", "memorysize:1024", "runtime:python2.7", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +{"e": XXXX, "m": "hello.dog", "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +{"e": XXXX, "m": "tests.integration.count", "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 21} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/logs/async-metrics_python36.log b/tests/integration/snapshots/logs/async-metrics_python36.log new file mode 100644 index 00000000..1f967c38 --- /dev/null +++ b/tests/integration/snapshots/logs/async-metrics_python36.log @@ -0,0 +1,21 @@ +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python36", "cold_start:true", "memorysize:1024", "runtime:python3.6", "dd_lambda_layer:datadog-python36_2.XX.0"]} +{"m": "hello.dog", "v": 1, "e": XXXX, "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"]} +{"m": "tests.integration.count", "v": 21, "e": XXXX, "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python36", "cold_start:false", "memorysize:1024", "runtime:python3.6", "dd_lambda_layer:datadog-python36_2.XX.0"]} +{"m": "hello.dog", "v": 1, "e": XXXX, "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"]} +{"m": "tests.integration.count", "v": 21, "e": XXXX, "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python36", "cold_start:false", "memorysize:1024", "runtime:python3.6", "dd_lambda_layer:datadog-python36_2.XX.0"]} +{"m": "hello.dog", "v": 1, "e": XXXX, "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"]} +{"m": "tests.integration.count", "v": 21, "e": XXXX, "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/logs/async-metrics_python37.log b/tests/integration/snapshots/logs/async-metrics_python37.log new file mode 100644 index 00000000..8aa9d0ca --- /dev/null +++ b/tests/integration/snapshots/logs/async-metrics_python37.log @@ -0,0 +1,21 @@ +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python37", "cold_start:true", "memorysize:1024", "runtime:python3.7", "dd_lambda_layer:datadog-python37_2.XX.0"]} +{"m": "hello.dog", "v": 1, "e": XXXX, "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"]} +{"m": "tests.integration.count", "v": 21, "e": XXXX, "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python37", "cold_start:false", "memorysize:1024", "runtime:python3.7", "dd_lambda_layer:datadog-python37_2.XX.0"]} +{"m": "hello.dog", "v": 1, "e": XXXX, "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"]} +{"m": "tests.integration.count", "v": 21, "e": XXXX, "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python37", "cold_start:false", "memorysize:1024", "runtime:python3.7", "dd_lambda_layer:datadog-python37_2.XX.0"]} +{"m": "hello.dog", "v": 1, "e": XXXX, "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"]} +{"m": "tests.integration.count", "v": 21, "e": XXXX, "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/logs/async-metrics_python38.log b/tests/integration/snapshots/logs/async-metrics_python38.log new file mode 100644 index 00000000..dba8434b --- /dev/null +++ b/tests/integration/snapshots/logs/async-metrics_python38.log @@ -0,0 +1,21 @@ +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python38", "cold_start:true", "memorysize:1024", "runtime:python3.8", "dd_lambda_layer:datadog-python38_2.XX.0"]} +{"m": "hello.dog", "v": 1, "e": XXXX, "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"]} +{"m": "tests.integration.count", "v": 21, "e": XXXX, "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python38", "cold_start:false", "memorysize:1024", "runtime:python3.8", "dd_lambda_layer:datadog-python38_2.XX.0"]} +{"m": "hello.dog", "v": 1, "e": XXXX, "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"]} +{"m": "tests.integration.count", "v": 21, "e": XXXX, "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-async-metrics_python38", "cold_start:false", "memorysize:1024", "runtime:python3.8", "dd_lambda_layer:datadog-python38_2.XX.0"]} +{"m": "hello.dog", "v": 1, "e": XXXX, "t": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"]} +{"m": "tests.integration.count", "v": 21, "e": XXXX, "t": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/logs/http-requests_python27.log b/tests/integration/snapshots/logs/http-requests_python27.log new file mode 100644 index 00000000..26003f91 --- /dev/null +++ b/tests/integration/snapshots/logs/http-requests_python27.log @@ -0,0 +1,24 @@ +START RequestId: XXXX Version: $LATEST +{"e": XXXX, "m": "aws.lambda.enhanced.invocations", "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python27", "cold_start:true", "memorysize:1024", "runtime:python2.7", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "hello.dog", "interval": 10, "host": null, "points": [[XXXX, [1.0]]], "device": null, "type": "distribution"}, {"tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "tests.integration.count", "interval": 10, "host": null, "points": [[XXXX, [21.0]]], "device": null, "type": "distribution"}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"e": XXXX, "m": "aws.lambda.enhanced.invocations", "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python27", "cold_start:false", "memorysize:1024", "runtime:python2.7", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "hello.dog", "interval": 10, "host": null, "points": [[XXXX, [1.0]]], "device": null, "type": "distribution"}, {"tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "tests.integration.count", "interval": 10, "host": null, "points": [[XXXX, [21.0]]], "device": null, "type": "distribution"}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"e": XXXX, "m": "aws.lambda.enhanced.invocations", "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python27", "cold_start:false", "memorysize:1024", "runtime:python2.7", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "hello.dog", "interval": 10, "host": null, "points": [[XXXX, [1.0]]], "device": null, "type": "distribution"}, {"tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "tests.integration.count", "interval": 10, "host": null, "points": [[XXXX, [21.0]]], "device": null, "type": "distribution"}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/logs/http-requests_python36.log b/tests/integration/snapshots/logs/http-requests_python36.log new file mode 100644 index 00000000..c1c839d8 --- /dev/null +++ b/tests/integration/snapshots/logs/http-requests_python36.log @@ -0,0 +1,24 @@ +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python36", "cold_start:true", "memorysize:1024", "runtime:python3.6", "dd_lambda_layer:datadog-python36_2.XX.0"]} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python36", "cold_start:false", "memorysize:1024", "runtime:python3.6", "dd_lambda_layer:datadog-python36_2.XX.0"]} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python36", "cold_start:false", "memorysize:1024", "runtime:python3.6", "dd_lambda_layer:datadog-python36_2.XX.0"]} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/logs/http-requests_python37.log b/tests/integration/snapshots/logs/http-requests_python37.log new file mode 100644 index 00000000..2c037c43 --- /dev/null +++ b/tests/integration/snapshots/logs/http-requests_python37.log @@ -0,0 +1,24 @@ +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python37", "cold_start:true", "memorysize:1024", "runtime:python3.7", "dd_lambda_layer:datadog-python37_2.XX.0"]} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python37", "cold_start:false", "memorysize:1024", "runtime:python3.7", "dd_lambda_layer:datadog-python37_2.XX.0"]} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python37", "cold_start:false", "memorysize:1024", "runtime:python3.7", "dd_lambda_layer:datadog-python37_2.XX.0"]} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/logs/http-requests_python38.log b/tests/integration/snapshots/logs/http-requests_python38.log new file mode 100644 index 00000000..a67728d3 --- /dev/null +++ b/tests/integration/snapshots/logs/http-requests_python38.log @@ -0,0 +1,24 @@ +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python38", "cold_start:true", "memorysize:1024", "runtime:python3.8", "dd_lambda_layer:datadog-python38_2.XX.0"]} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python38", "cold_start:false", "memorysize:1024", "runtime:python3.8", "dd_lambda_layer:datadog-python38_2.XX.0"]} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-http-requests_python38", "cold_start:false", "memorysize:1024", "runtime:python3.8", "dd_lambda_layer:datadog-python38_2.XX.0"]} +HTTP GET https://ip-ranges.datadoghq.com/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP GET https://ip-ranges.datadoghq.eu/ Headers: ["x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/logs/sync-metrics_python27.log b/tests/integration/snapshots/logs/sync-metrics_python27.log new file mode 100644 index 00000000..17385b8e --- /dev/null +++ b/tests/integration/snapshots/logs/sync-metrics_python27.log @@ -0,0 +1,18 @@ +START RequestId: XXXX Version: $LATEST +{"e": XXXX, "m": "aws.lambda.enhanced.invocations", "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python27", "cold_start:true", "memorysize:1024", "runtime:python2.7", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "hello.dog", "interval": 10, "host": null, "points": [[XXXX, [1.0]]], "device": null, "type": "distribution"}, {"tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "tests.integration.count", "interval": 10, "host": null, "points": [[XXXX, [21.0]]], "device": null, "type": "distribution"}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"e": XXXX, "m": "aws.lambda.enhanced.invocations", "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python27", "cold_start:false", "memorysize:1024", "runtime:python2.7", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "hello.dog", "interval": 10, "host": null, "points": [[XXXX, [1.0]]], "device": null, "type": "distribution"}, {"tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "tests.integration.count", "interval": 10, "host": null, "points": [[XXXX, [21.0]]], "device": null, "type": "distribution"}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"e": XXXX, "m": "aws.lambda.enhanced.invocations", "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python27", "cold_start:false", "memorysize:1024", "runtime:python2.7", "dd_lambda_layer:datadog-python27_2.XX.0"], "v": 1} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "hello.dog", "interval": 10, "host": null, "points": [[XXXX, [1.0]]], "device": null, "type": "distribution"}, {"tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python27_2.XX.0"], "metric": "tests.integration.count", "interval": 10, "host": null, "points": [[XXXX, [21.0]]], "device": null, "type": "distribution"}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/logs/sync-metrics_python36.log b/tests/integration/snapshots/logs/sync-metrics_python36.log new file mode 100644 index 00000000..32319380 --- /dev/null +++ b/tests/integration/snapshots/logs/sync-metrics_python36.log @@ -0,0 +1,18 @@ +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python36", "cold_start:true", "memorysize:1024", "runtime:python3.6", "dd_lambda_layer:datadog-python36_2.XX.0"]} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python36", "cold_start:false", "memorysize:1024", "runtime:python3.6", "dd_lambda_layer:datadog-python36_2.XX.0"]} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python36", "cold_start:false", "memorysize:1024", "runtime:python3.6", "dd_lambda_layer:datadog-python36_2.XX.0"]} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python36_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/logs/sync-metrics_python37.log b/tests/integration/snapshots/logs/sync-metrics_python37.log new file mode 100644 index 00000000..85cb79bd --- /dev/null +++ b/tests/integration/snapshots/logs/sync-metrics_python37.log @@ -0,0 +1,18 @@ +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python37", "cold_start:true", "memorysize:1024", "runtime:python3.7", "dd_lambda_layer:datadog-python37_2.XX.0"]} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python37", "cold_start:false", "memorysize:1024", "runtime:python3.7", "dd_lambda_layer:datadog-python37_2.XX.0"]} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python37", "cold_start:false", "memorysize:1024", "runtime:python3.7", "dd_lambda_layer:datadog-python37_2.XX.0"]} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python37_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/logs/sync-metrics_python38.log b/tests/integration/snapshots/logs/sync-metrics_python38.log new file mode 100644 index 00000000..baf56809 --- /dev/null +++ b/tests/integration/snapshots/logs/sync-metrics_python38.log @@ -0,0 +1,18 @@ +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python38", "cold_start:true", "memorysize:1024", "runtime:python3.8", "dd_lambda_layer:datadog-python38_2.XX.0"]} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python38", "cold_start:false", "memorysize:1024", "runtime:python3.8", "dd_lambda_layer:datadog-python38_2.XX.0"]} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true +START RequestId: XXXX Version: $LATEST +{"m": "aws.lambda.enhanced.invocations", "v": 1, "e": XXXX, "t": ["region:us-east-1", "account_id:XXXX", "functionname:integration-tester-dev-sync-metrics_python38", "cold_start:false", "memorysize:1024", "runtime:python3.8", "dd_lambda_layer:datadog-python38_2.XX.0"]} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Content-Type:application/json", "x-datadog-parent-id:XXXX", "x-datadog-sampling-priority:2", "x-datadog-trace-id:XXXX"] Data: {"series": [{"metric": "hello.dog", "points": [[XXXX, [1.0]]], "type": "distribution", "host": null, "device": null, "tags": ["team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}, {"metric": "tests.integration.count", "points": [[XXXX, [21.0]]], "type": "distribution", "host": null, "device": null, "tags": ["test:integration", "role:hello", "dd_lambda_layer:datadog-python38_2.XX.0"], "interval": 10}]} +END RequestId: XXXX +REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB +XRAY TraceId: XXXX SegmentId: XXXX Sampled: true diff --git a/tests/integration/snapshots/return_values/async-metrics_python27_api-gateway-get.json b/tests/integration/snapshots/return_values/async-metrics_python27_api-gateway-get.json new file mode 100644 index 00000000..d8e93bb0 --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python27_api-gateway-get.json @@ -0,0 +1,8 @@ +{ + "body": { + "message": "hello, dog!", + "event_record_ids": [], + "request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9" + }, + "statusCode": 200 +} diff --git a/tests/integration/snapshots/return_values/async-metrics_python27_sns.json b/tests/integration/snapshots/return_values/async-metrics_python27_sns.json new file mode 100644 index 00000000..08cbae60 --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python27_sns.json @@ -0,0 +1,10 @@ +{ + "body": { + "message": "hello, dog!", + "event_record_ids": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ], + "request_id": null + }, + "statusCode": 200 +} diff --git a/tests/integration/snapshots/return_values/async-metrics_python27_sqs.json b/tests/integration/snapshots/return_values/async-metrics_python27_sqs.json new file mode 100644 index 00000000..03f2a6cd --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python27_sqs.json @@ -0,0 +1,11 @@ +{ + "body": { + "message": "hello, dog!", + "event_record_ids": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ], + "request_id": null + }, + "statusCode": 200 +} diff --git a/tests/integration/snapshots/return_values/async-metrics_python36_api-gateway-get.json b/tests/integration/snapshots/return_values/async-metrics_python36_api-gateway-get.json new file mode 100644 index 00000000..22038093 --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python36_api-gateway-get.json @@ -0,0 +1,8 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", + "event_record_ids": [] + } +} diff --git a/tests/integration/snapshots/return_values/async-metrics_python36_sns.json b/tests/integration/snapshots/return_values/async-metrics_python36_sns.json new file mode 100644 index 00000000..e1f007e6 --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python36_sns.json @@ -0,0 +1,10 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ] + } +} diff --git a/tests/integration/snapshots/return_values/async-metrics_python36_sqs.json b/tests/integration/snapshots/return_values/async-metrics_python36_sqs.json new file mode 100644 index 00000000..970f7dff --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python36_sqs.json @@ -0,0 +1,11 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ] + } +} diff --git a/tests/integration/snapshots/return_values/async-metrics_python37_api-gateway-get.json b/tests/integration/snapshots/return_values/async-metrics_python37_api-gateway-get.json new file mode 100644 index 00000000..22038093 --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python37_api-gateway-get.json @@ -0,0 +1,8 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", + "event_record_ids": [] + } +} diff --git a/tests/integration/snapshots/return_values/async-metrics_python37_sns.json b/tests/integration/snapshots/return_values/async-metrics_python37_sns.json new file mode 100644 index 00000000..e1f007e6 --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python37_sns.json @@ -0,0 +1,10 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ] + } +} diff --git a/tests/integration/snapshots/return_values/async-metrics_python37_sqs.json b/tests/integration/snapshots/return_values/async-metrics_python37_sqs.json new file mode 100644 index 00000000..970f7dff --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python37_sqs.json @@ -0,0 +1,11 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ] + } +} diff --git a/tests/integration/snapshots/return_values/async-metrics_python38_api-gateway-get.json b/tests/integration/snapshots/return_values/async-metrics_python38_api-gateway-get.json new file mode 100644 index 00000000..22038093 --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python38_api-gateway-get.json @@ -0,0 +1,8 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", + "event_record_ids": [] + } +} diff --git a/tests/integration/snapshots/return_values/async-metrics_python38_sns.json b/tests/integration/snapshots/return_values/async-metrics_python38_sns.json new file mode 100644 index 00000000..e1f007e6 --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python38_sns.json @@ -0,0 +1,10 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ] + } +} diff --git a/tests/integration/snapshots/return_values/async-metrics_python38_sqs.json b/tests/integration/snapshots/return_values/async-metrics_python38_sqs.json new file mode 100644 index 00000000..970f7dff --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_python38_sqs.json @@ -0,0 +1,11 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ] + } +} diff --git a/tests/integration/snapshots/return_values/http-requests_python27_api-gateway-get.json b/tests/integration/snapshots/return_values/http-requests_python27_api-gateway-get.json new file mode 100644 index 00000000..2b4bed60 --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python27_api-gateway-get.json @@ -0,0 +1,6 @@ +{ + "body": { + "message": "hello, dog!" + }, + "statusCode": 200 +} diff --git a/tests/integration/snapshots/return_values/http-requests_python27_sns.json b/tests/integration/snapshots/return_values/http-requests_python27_sns.json new file mode 100644 index 00000000..2b4bed60 --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python27_sns.json @@ -0,0 +1,6 @@ +{ + "body": { + "message": "hello, dog!" + }, + "statusCode": 200 +} diff --git a/tests/integration/snapshots/return_values/http-requests_python27_sqs.json b/tests/integration/snapshots/return_values/http-requests_python27_sqs.json new file mode 100644 index 00000000..2b4bed60 --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python27_sqs.json @@ -0,0 +1,6 @@ +{ + "body": { + "message": "hello, dog!" + }, + "statusCode": 200 +} diff --git a/tests/integration/snapshots/return_values/http-requests_python36_api-gateway-get.json b/tests/integration/snapshots/return_values/http-requests_python36_api-gateway-get.json new file mode 100644 index 00000000..2f8a4b8d --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python36_api-gateway-get.json @@ -0,0 +1,6 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!" + } +} diff --git a/tests/integration/snapshots/return_values/http-requests_python36_sns.json b/tests/integration/snapshots/return_values/http-requests_python36_sns.json new file mode 100644 index 00000000..2f8a4b8d --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python36_sns.json @@ -0,0 +1,6 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!" + } +} diff --git a/tests/integration/snapshots/return_values/http-requests_python36_sqs.json b/tests/integration/snapshots/return_values/http-requests_python36_sqs.json new file mode 100644 index 00000000..2f8a4b8d --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python36_sqs.json @@ -0,0 +1,6 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!" + } +} diff --git a/tests/integration/snapshots/return_values/http-requests_python37_api-gateway-get.json b/tests/integration/snapshots/return_values/http-requests_python37_api-gateway-get.json new file mode 100644 index 00000000..2f8a4b8d --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python37_api-gateway-get.json @@ -0,0 +1,6 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!" + } +} diff --git a/tests/integration/snapshots/return_values/http-requests_python37_sns.json b/tests/integration/snapshots/return_values/http-requests_python37_sns.json new file mode 100644 index 00000000..2f8a4b8d --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python37_sns.json @@ -0,0 +1,6 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!" + } +} diff --git a/tests/integration/snapshots/return_values/http-requests_python37_sqs.json b/tests/integration/snapshots/return_values/http-requests_python37_sqs.json new file mode 100644 index 00000000..2f8a4b8d --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python37_sqs.json @@ -0,0 +1,6 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!" + } +} diff --git a/tests/integration/snapshots/return_values/http-requests_python38_api-gateway-get.json b/tests/integration/snapshots/return_values/http-requests_python38_api-gateway-get.json new file mode 100644 index 00000000..2f8a4b8d --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python38_api-gateway-get.json @@ -0,0 +1,6 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!" + } +} diff --git a/tests/integration/snapshots/return_values/http-requests_python38_sns.json b/tests/integration/snapshots/return_values/http-requests_python38_sns.json new file mode 100644 index 00000000..2f8a4b8d --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python38_sns.json @@ -0,0 +1,6 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!" + } +} diff --git a/tests/integration/snapshots/return_values/http-requests_python38_sqs.json b/tests/integration/snapshots/return_values/http-requests_python38_sqs.json new file mode 100644 index 00000000..2f8a4b8d --- /dev/null +++ b/tests/integration/snapshots/return_values/http-requests_python38_sqs.json @@ -0,0 +1,6 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!" + } +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python27_api-gateway-get.json b/tests/integration/snapshots/return_values/sync-metrics_python27_api-gateway-get.json new file mode 100644 index 00000000..d8e93bb0 --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python27_api-gateway-get.json @@ -0,0 +1,8 @@ +{ + "body": { + "message": "hello, dog!", + "event_record_ids": [], + "request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9" + }, + "statusCode": 200 +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python27_sns.json b/tests/integration/snapshots/return_values/sync-metrics_python27_sns.json new file mode 100644 index 00000000..08cbae60 --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python27_sns.json @@ -0,0 +1,10 @@ +{ + "body": { + "message": "hello, dog!", + "event_record_ids": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ], + "request_id": null + }, + "statusCode": 200 +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python27_sqs.json b/tests/integration/snapshots/return_values/sync-metrics_python27_sqs.json new file mode 100644 index 00000000..03f2a6cd --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python27_sqs.json @@ -0,0 +1,11 @@ +{ + "body": { + "message": "hello, dog!", + "event_record_ids": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ], + "request_id": null + }, + "statusCode": 200 +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python36_api-gateway-get.json b/tests/integration/snapshots/return_values/sync-metrics_python36_api-gateway-get.json new file mode 100644 index 00000000..22038093 --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python36_api-gateway-get.json @@ -0,0 +1,8 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", + "event_record_ids": [] + } +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python36_sns.json b/tests/integration/snapshots/return_values/sync-metrics_python36_sns.json new file mode 100644 index 00000000..e1f007e6 --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python36_sns.json @@ -0,0 +1,10 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ] + } +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python36_sqs.json b/tests/integration/snapshots/return_values/sync-metrics_python36_sqs.json new file mode 100644 index 00000000..970f7dff --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python36_sqs.json @@ -0,0 +1,11 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ] + } +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python37_api-gateway-get.json b/tests/integration/snapshots/return_values/sync-metrics_python37_api-gateway-get.json new file mode 100644 index 00000000..22038093 --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python37_api-gateway-get.json @@ -0,0 +1,8 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", + "event_record_ids": [] + } +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python37_sns.json b/tests/integration/snapshots/return_values/sync-metrics_python37_sns.json new file mode 100644 index 00000000..e1f007e6 --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python37_sns.json @@ -0,0 +1,10 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ] + } +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python37_sqs.json b/tests/integration/snapshots/return_values/sync-metrics_python37_sqs.json new file mode 100644 index 00000000..970f7dff --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python37_sqs.json @@ -0,0 +1,11 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ] + } +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python38_api-gateway-get.json b/tests/integration/snapshots/return_values/sync-metrics_python38_api-gateway-get.json new file mode 100644 index 00000000..22038093 --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python38_api-gateway-get.json @@ -0,0 +1,8 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", + "event_record_ids": [] + } +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python38_sns.json b/tests/integration/snapshots/return_values/sync-metrics_python38_sns.json new file mode 100644 index 00000000..e1f007e6 --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python38_sns.json @@ -0,0 +1,10 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ] + } +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_python38_sqs.json b/tests/integration/snapshots/return_values/sync-metrics_python38_sqs.json new file mode 100644 index 00000000..970f7dff --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_python38_sqs.json @@ -0,0 +1,11 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ] + } +}