56 lines
2.5 KiB
Python
56 lines
2.5 KiB
Python
from enum import Enum
|
|
from typing import Dict, Optional
|
|
|
|
from ray._common.usage.usage_lib import TagKey, record_extra_usage_tag
|
|
|
|
|
|
class ServeUsageTag(Enum):
|
|
API_VERSION = TagKey.SERVE_API_VERSION
|
|
NUM_DEPLOYMENTS = TagKey.SERVE_NUM_DEPLOYMENTS
|
|
GCS_STORAGE = TagKey.GCS_STORAGE
|
|
NUM_GPU_DEPLOYMENTS = TagKey.SERVE_NUM_GPU_DEPLOYMENTS
|
|
FASTAPI_USED = TagKey.SERVE_FASTAPI_USED
|
|
DAG_DRIVER_USED = TagKey.SERVE_DAG_DRIVER_USED
|
|
HTTP_ADAPTER_USED = TagKey.SERVE_HTTP_ADAPTER_USED
|
|
GRPC_INGRESS_USED = TagKey.SERVE_GRPC_INGRESS_USED
|
|
REST_API_VERSION = TagKey.SERVE_REST_API_VERSION
|
|
NUM_APPS = TagKey.SERVE_NUM_APPS
|
|
NUM_REPLICAS_LIGHTWEIGHT_UPDATED = TagKey.SERVE_NUM_REPLICAS_LIGHTWEIGHT_UPDATED
|
|
USER_CONFIG_LIGHTWEIGHT_UPDATED = TagKey.SERVE_USER_CONFIG_LIGHTWEIGHT_UPDATED
|
|
AUTOSCALING_CONFIG_LIGHTWEIGHT_UPDATED = (
|
|
TagKey.SERVE_AUTOSCALING_CONFIG_LIGHTWEIGHT_UPDATED
|
|
)
|
|
DEPLOYMENT_HANDLE_API_USED = TagKey.SERVE_DEPLOYMENT_HANDLE_API_USED
|
|
DEPLOYMENT_HANDLE_TO_OBJECT_REF_API_USED = (
|
|
TagKey.SERVE_DEPLOYMENT_HANDLE_TO_OBJECT_REF_API_USED
|
|
)
|
|
MULTIPLEXED_API_USED = TagKey.SERVE_MULTIPLEXED_API_USED
|
|
HTTP_PROXY_USED = TagKey.SERVE_HTTP_PROXY_USED
|
|
GRPC_PROXY_USED = TagKey.SERVE_GRPC_PROXY_USED
|
|
SERVE_STATUS_API_USED = TagKey.SERVE_STATUS_API_USED
|
|
SERVE_GET_APP_HANDLE_API_USED = TagKey.SERVE_GET_APP_HANDLE_API_USED
|
|
SERVE_GET_DEPLOYMENT_HANDLE_API_USED = TagKey.SERVE_GET_DEPLOYMENT_HANDLE_API_USED
|
|
APP_CONTAINER_RUNTIME_ENV_USED = TagKey.SERVE_APP_CONTAINER_RUNTIME_ENV_USED
|
|
DEPLOYMENT_CONTAINER_RUNTIME_ENV_USED = (
|
|
TagKey.SERVE_DEPLOYMENT_CONTAINER_RUNTIME_ENV_USED
|
|
)
|
|
NUM_NODE_COMPACTIONS = TagKey.SERVE_NUM_NODE_COMPACTIONS
|
|
AUTO_NUM_REPLICAS_USED = TagKey.SERVE_AUTO_NUM_REPLICAS_USED
|
|
CUSTOM_REQUEST_ROUTER_USED = TagKey.SERVE_CUSTOM_REQUEST_ROUTER_USED
|
|
NUM_REPLICAS_VIA_API_CALL_UPDATED = TagKey.SERVE_NUM_REPLICAS_VIA_API_CALL_UPDATED
|
|
NUM_REPLICAS_USING_ASYNCHRONOUS_INFERENCE = (
|
|
TagKey.SERVE_NUM_REPLICAS_USING_ASYNCHRONOUS_INFERENCE
|
|
)
|
|
CUSTOM_AUTOSCALING_POLICY_USED = TagKey.SERVE_CUSTOM_AUTOSCALING_POLICY_USED
|
|
|
|
def record(self, value: str):
|
|
"""Record telemetry value."""
|
|
record_extra_usage_tag(self.value, value)
|
|
|
|
def get_value_from_report(self, report: Dict) -> Optional[str]:
|
|
"""Returns `None` if the tag isn't in the report."""
|
|
if "extra_usage_tags" not in report:
|
|
return None
|
|
|
|
return report["extra_usage_tags"].get(TagKey.Name(self.value).lower(), None)
|