MCPcopy Create free account
hub / github.com/Flagsmith/flagsmith / get_current_api_usage

Function get_current_api_usage

api/app_analytics/influxdb_wrapper.py:439–475  ·  view source on GitHub ↗

Query influx db for api usage :param organisation_id: filtered organisation :param date_range: data range for current api usage window :return: number of current api calls

(
    organisation_id: int,
    date_start: datetime,
)

Source from the content-addressed store, hash-verified

437
438
439def get_current_api_usage(
440 organisation_id: int,
441 date_start: datetime,
442) -> int:
443 """
444 Query influx db for api usage
445
446 :param organisation_id: filtered organisation
447 :param date_range: data range for current api usage window
448
449 :return: number of current api calls
450 """
451 bucket = InfluxDBWrapper.get_downsampled_bucket(DownsampleSize.FIFTEEN_MINUTES)
452 results = InfluxDBWrapper.influx_query_manager(
453 date_start=date_start,
454 bucket=bucket,
455 filters=build_filter_string(
456 [
457 'r._measurement == "api_call"',
458 'r["_field"] == "request_count"',
459 f'r["organisation_id"] == "{organisation_id}"',
460 ]
461 ),
462 drop_columns=("_start", "_stop", "_time"),
463 extra='|> sum() \
464 |> group() \
465 |> sort(columns: ["_value"], desc: true) ',
466 )
467
468 for result in results:
469 # Return zero if there are no API calls recorded.
470 if len(result.records) == 0:
471 return 0
472
473 return sum(r.get_value() for r in result.records)
474
475 return 0
476
477
478def get_platform_usage_trends(

Calls 4

build_filter_stringFunction · 0.85
influx_query_managerMethod · 0.80
get_valueMethod · 0.45

Used in the wild real call sites across dependent graphs

searching dependent graphs…