Skip to content

example: datadog_api_client.v2 query_timeseries_data does not work #2240

Description

@bellondr

Describe the bug
A clear and concise description of what the bug is.
when I run test in
https://github.com/DataDog/datadog-api-client-python/blob/master/examples/v2/metrics/QueryTimeseriesData.py

"""
Query timeseries data across multiple products returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.metrics_api import MetricsApi
from datadog_api_client.v2.model.formula_limit import FormulaLimit
from datadog_api_client.v2.model.metrics_data_source import MetricsDataSource
from datadog_api_client.v2.model.metrics_timeseries_query import MetricsTimeseriesQuery
from datadog_api_client.v2.model.query_formula import QueryFormula
from datadog_api_client.v2.model.query_sort_order import QuerySortOrder
from datadog_api_client.v2.model.timeseries_formula_query_request import TimeseriesFormulaQueryRequest
from datadog_api_client.v2.model.timeseries_formula_request import TimeseriesFormulaRequest
from datadog_api_client.v2.model.timeseries_formula_request_attributes import TimeseriesFormulaRequestAttributes
from datadog_api_client.v2.model.timeseries_formula_request_queries import TimeseriesFormulaRequestQueries
from datadog_api_client.v2.model.timeseries_formula_request_type import TimeseriesFormulaRequestType


body = TimeseriesFormulaQueryRequest(
    data=TimeseriesFormulaRequest(
        attributes=TimeseriesFormulaRequestAttributes(
            formulas=[
                QueryFormula(
                    formula="a+b",
                    limit=FormulaLimit(
                        count=10,
                        order=QuerySortOrder.DESC,
                    ),
                ),
            ],
            _from=1730518188595,
            interval=5000,
            queries=TimeseriesFormulaRequestQueries(
                [
                    MetricsTimeseriesQuery(
                        data_source=MetricsDataSource.METRICS,
                        query="avg:system.cpu.user{*}",
                    ),
                ]
            ),
            to=1730604588595,
        ),
        type=TimeseriesFormulaRequestType.TIMESERIES_REQUEST,
    ),
)

API_KEY= 'XXX'
APP_KEY = 'XXX'
configuration = Configuration()
configuration.api_key["apiKeyAuth"] = API_KEY
configuration.api_key["appKeyAuth"] = APP_KEY
configuration.unstable_operations["query_timeseries_data"] = True
with ApiClient(configuration) as api_client:
    api_instance = MetricsApi(api_client)
    response = api_instance.query_timeseries_data(body=body)

    print(response)

return error: {'errors': ['Invalid query input']}

Label the issue properly.

  • Add severity/ label.
  • Add documentation label if this issue is related to documentation changes.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment and Versions (please complete the following information):
A clear and precise description of your setup:

  • version for this project in use.
  • services, libraries, languages and tools list and versions.

Additional context
Add any other context about the problem here.

Activity

  1. wycmiko commented on Nov 15, 2024

    @wycmiko

    I faced the similar issue while concating a list and pass it :

    metric_query_list = []
            for metric_query in metric_queries_list:
                metric_query_list.append(MetricsTimeseriesQuery(
                    data_source=MetricsDataSource.METRICS,
                    query=metric_query['query'],
                    name=metric_query['name'],
                ))
    
    TimeseriesFormulaQueryRequest(
                data=TimeseriesFormulaRequest(
                    attributes=TimeseriesFormulaRequestAttributes(
                        formulas=[
                            QueryFormula(
                                formula=fo_expr,
                                limit=FormulaLimit(
                                    count=10,
                                    order=QuerySortOrder.DESC,
                                ),
                            )
                        ],
                        _from=start_time_ms,
                        interval=864000000,
                        queries=TimeseriesFormulaRequestQueries(metric_query_list), # this line can not correct handle
                        to=current_time_ms,
                    ),
                    type=TimeseriesFormulaRequestType.TIMESERIES_REQUEST,
                ),
            )
    

    If use code above and submitting the query will get empty response.

    If I hard code the list will get the correct response(all query conditions are the same):

          queries=TimeseriesFormulaRequestQueries(
                    [
                        MetricsTimeseriesQuery(
                            data_source=MetricsDataSource.METRICS,
                            query="sum:langflow_rag_infer_api_total{http_return_code:200} by {xxx}.as_count().rollup(sum, 60)",
                            name="query3",
                        ),
                        MetricsTimeseriesQuery(
                            data_source=MetricsDataSource.METRICS,
                            query="sum:langflow_rag_infer_api_total{*} by {xxx}.as_count().rollup(sum, 60)",
                            name="query4",
                        ),
                        MetricsTimeseriesQuery(
                            data_source=MetricsDataSource.METRICS,
                            query="sum:langflow_infer_api_total{$xxx, http_return_code:200} by {xxx}.as_count().rollup(sum, 60)",
                            name="query1",
                        ),
                        MetricsTimeseriesQuery(
                            data_source=MetricsDataSource.METRICS,
                            query="sum:xxx{$xxx} by {byoa_app}.as_count().rollup(sum, 60)",
                            name="query2",
                        ),
                    ]
                ),
    

    python client version: 2.30.0

  2. github-actions commented on Dec 16, 2024

    @github-actions

    Thanks for your contribution!

    This issue has been automatically marked as stale because it has not had activity in the last 30 days. Note that the issue will not be automatically closed, but this notification will remind us to investigate why there's been inactivity. Thank you for participating in the Datadog open source community.

    If you would like this issue to remain open:

    1. Verify that you can still reproduce the issue in the latest version of this project.

    2. Comment that the issue is still reproducible and include updated details requested in the issue template.

  3. filiprem-clickup commented on Sep 15, 2025

    @filiprem-clickup

    I'm also affected by this or similar issue. Followed the examples from docs. Code snippet:

            body = TimeseriesFormulaQueryRequest(
                data=TimeseriesFormulaRequest(
                    type=TimeseriesFormulaRequestType.TIMESERIES_REQUEST,
                    attributes=TimeseriesFormulaRequestAttributes(
                        queries=[
                            MetricsTimeseriesQuery(
                                data_source=MetricsDataSource.METRICS,
                                name="q1",
                                query=query_str,
                            )
                        ],
                        formulas=[QueryFormula(formula="q1")],
                        from_=t_from_ms,
                        to=t_to_ms,
                        interval=3600 * 1000,  # 1h in ms
                    ),
                )
            )
    

    error:

    Traceback (most recent call last):
    (...)
        attributes=TimeseriesFormulaRequestAttributes(
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
            queries=[
            ^^^^^^^^^
        ...<9 lines>...
            interval=3600 * 1000,  # 1h in ms
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        ),
        ^
    TypeError: TimeseriesFormulaRequestAttributes.__init__() missing 1 required positional argument: '_from'
    
  4. github-actions commented on Nov 19, 2025

    @github-actions

    Thanks for your contribution!

    This issue has been automatically marked as stale because it has not had activity in the last 30 days. Note that the issue will not be automatically closed, but this notification will remind us to investigate why there's been inactivity. Thank you for participating in the Datadog open source community.

    If you would like this issue to remain open:

    1. Verify that you can still reproduce the issue in the latest version of this project.

    2. Comment that the issue is still reproducible and include updated details requested in the issue template.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions