Skip to content

403 Forbidden on Threadstats.distribution submit #479

@whisust

Description

@whisust

Currently on datadog version 0.31.0, you can't send distributions through ThreadStats.

from datadog import initialize, ThreadStats
import time
import logging

logging.basicConfig(level='DEBUG')
logger = logging.getLogger(__name__)

DATADOG_API_KEY = "<api_key>"
DATADOG_APP_KEY = "<app_key>"

initialize(api_key=DATADOG_API_KEY, app_key=DATADOG_APP_KEY)

client = ThreadStats()

logger.info('Starting datadog threadstats reporter')
client.start(flush_interval=5, roll_up_interval=5)

# 403 on submit
client.distribution('my-distrib', 1)
time.sleep(10)

# 202 On submit
client.histogram('my-histo', 1)
time.sleep(10)

Outputs:

WARNING:datadog.api:No agent or invalid configuration file found
INFO:__main__:Starting datadog threadstats reporter
INFO:datadog.threadstats:Starting flush thread with interval 5.
DEBUG:datadog.threadstats:Flushing metrics in thread
DEBUG:datadog.threadstats:No metrics to flush. Continuing.
DEBUG:datadog.threadstats:Flush #1 sending 1 distributions
DEBUG:datadog.api:Use `requests` based HTTP client.
DEBUG:urllib3.util.retry:Converted retries value: 3 -> Retry(total=3, connect=None, read=None, redirect=None, status=None)
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): api.datadoghq.com
DEBUG:urllib3.connectionpool:https://api.datadoghq.com:443 "POST /api/v1/distribution_points HTTP/1.1" 403 20
INFO:datadog.api:403 POST https://api.datadoghq.com/api/v1/distribution_points (416.9381ms)
ERROR:datadog.threadstats:Error flushing metrics and events
Traceback (most recent call last):
  File "/Users/antoinel/venvs/jellynote/lib/python2.7/site-packages/datadog/threadstats/base.py", line 324, in flush
    self.reporter.flush_distributions(dists)
  File "/Users/antoinel/venvs/jellynote/lib/python2.7/site-packages/datadog/threadstats/reporters.py", line 21, in flush_distributions
    api.Distribution.send(distributions, compress_payload=self.compress_payload)
  File "/Users/antoinel/venvs/jellynote/lib/python2.7/site-packages/datadog/api/distributions.py", line 40, in send
    attach_host_name=attach_host_name, compress_payload=compress_payload, **series_dict
  File "/Users/antoinel/venvs/jellynote/lib/python2.7/site-packages/datadog/api/resources.py", line 85, in send
    compress_payload=compress_payload
  File "/Users/antoinel/venvs/jellynote/lib/python2.7/site-packages/datadog/api/api_client.py", line 175, in submit
    raise ValueError('Invalid JSON response: {0}'.format(content))
ValueError: Invalid JSON response: No api key specified
DEBUG:datadog.threadstats:Flushing metrics in thread
DEBUG:datadog.threadstats:No metrics to flush. Continuing.
DEBUG:datadog.threadstats:No distributions to flush. Continuing.
DEBUG:datadog.threadstats:No events to flush. Continuing.
DEBUG:datadog.threadstats:Flushing metrics in thread
DEBUG:datadog.threadstats:Flush #2 sending 8 metrics
DEBUG:urllib3.connectionpool:https://api.datadoghq.com:443 "POST /api/v1/series?application_key=<app_key>&api_key=<api_key> HTTP/1.1" 202 16
INFO:datadog.api:202 POST https://api.datadoghq.com/api/v1/series (90.5559ms)
DEBUG:datadog.threadstats:No distributions to flush. Continuing.
DEBUG:datadog.threadstats:No events to flush. Continuing.
DEBUG:datadog.threadstats:No metrics to flush. Continuing.
DEBUG:datadog.threadstats:No distributions to flush. Continuing.
DEBUG:datadog.threadstats:No events to flush. Continuing.
DEBUG:datadog.threadstats:No metrics to flush. Continuing.
DEBUG:datadog.threadstats:No distributions to flush. Continuing.
DEBUG:datadog.threadstats:No events to flush. Continuing.

Process finished with exit code 0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions