Skip to main content

timeseries.go

timeseries.go - Overview

  1. Overview This file contains functions to prepare ClickHouse queries for fetching time series data of delta metrics. It includes functions for building sub-queries, optimizing queries, and creating the final query for metric retrieval.

  2. Detailed Documentation

    prepareTimeAggregationSubQuery(start, end, step int64, mq *v3.BuilderQuery) (string, error)

    • Purpose: Builds a sub-query for temporal aggregation of metric data.
    • Parameters:
      • start: int64 - Start timestamp in milliseconds.
      • end: int64 - End timestamp in milliseconds.
      • step: int64 - Step interval in seconds.
      • mq: *v3.BuilderQuery - Builder query object containing query parameters.
    • Returns:
      • string: The generated sub-query string.
      • error: An error object if any issue occurs during query preparation.

    prepareQueryOptimized(start, end, step int64, mq *v3.BuilderQuery) (string, error)

    • Purpose: Creates an optimized query for specific scenarios to improve performance by avoiding group by fingerprint.
    • Parameters:
      • start: int64 - Start timestamp in milliseconds.
      • end: int64 - End timestamp in milliseconds.
      • step: int64 - Step interval in seconds.
      • mq: *v3.BuilderQuery - Builder query object containing query parameters.
    • Returns:
      • string: The generated optimized query string.
      • error: An error object if any issue occurs during query preparation.

    PrepareMetricQueryDeltaTimeSeries(start, end, step int64, mq *v3.BuilderQuery) (string, error)

    • Purpose: Constructs the main query to fetch delta metric time series data.
    • Parameters:
      • start: int64 - Start timestamp in milliseconds.
      • end: int64 - End timestamp in milliseconds.
      • step: int64 - Step interval in seconds.
      • mq: *v3.BuilderQuery - Builder query object containing query parameters.
    • Returns:
      • string: The final query string for fetching metric data.
      • error: An error object if any issue occurs during query preparation.

    canShortCircuit(mq *v3.BuilderQuery) bool

    • Purpose: Determines whether the optimized query path can be used based on the query parameters.
    • Parameters:
      • mq: *v3.BuilderQuery - Builder query object containing query parameters.
    • Returns:
      • bool: Returns true if the optimized query can be used, false otherwise.
  3. Code Examples

    None

  4. Clarity and Accuracy

    All documented functions have clear descriptions and parameter/return value explanations.

  5. Markdown & MDX Perfection

    The documentation uses proper markdown syntax for headings, lists, and code blocks.

  6. Edge Cases To Avoid Breaking MDX

    • No unescaped special characters.
    • No broken links or images.
    • No raw HTML tags.
    • No HTML comments.
    • No tables.
    • Lists are properly indented.
    • Code blocks and headings are properly closed.
  7. Getting Started Relevance Include in Getting Started: NO