DataDog / datadog-api-client-typescript

Typescript client for the Datadog API
https://www.npmjs.com/package/@datadog/datadog-api-client
Apache License 2.0
82 stars 15 forks source link

Inconsistent API design in logs client #1863

Open golergka opened 1 month ago

golergka commented 1 month ago

Describe the bug

Methods fetchLogs and aggregateLogs` have inconsistent API, affecting DX

Label the issue properly.

To Reproduce

Steps to reproduce the behavior:

  1. Use log client to get and aggregate logs with the same parameters

Expected behavior

I expect to use a consistent API and re-use the same filter objects.

Actual behavior

Log client's fetchLogs and aggregateLogs have similar functionality, but different types for the same filters. Here's a snippet of my code:

  fetchLogs() {
    return this.logsClient.listLogsGet({
      filterFrom: this.filterFrom,
      pageLimit: this.limit,
      filterQuery: this.queryParts.join(" "),
    });
  }

  aggregateLogs() {
    return this.logsClient.aggregateLogs({
      body: {
        filter: {
          // Why not did Datadog API authors just reuse the same filter type
          // in list and aggregate endpoints? No idea.
          from: this.filterFrom?.toISOString(),
          query: this.queryParts.join(" "),
        },
      },
    });
  }

Environment and Versions (please complete the following information):

Library version 1.15.0

github-actions[bot] commented 1 week ago

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.