usage.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from enum import Enum
  2. from typing import Dict, Optional
  3. from ray._common.usage.usage_lib import TagKey, record_extra_usage_tag
  4. class ServeUsageTag(Enum):
  5. API_VERSION = TagKey.SERVE_API_VERSION
  6. NUM_DEPLOYMENTS = TagKey.SERVE_NUM_DEPLOYMENTS
  7. GCS_STORAGE = TagKey.GCS_STORAGE
  8. NUM_GPU_DEPLOYMENTS = TagKey.SERVE_NUM_GPU_DEPLOYMENTS
  9. FASTAPI_USED = TagKey.SERVE_FASTAPI_USED
  10. DAG_DRIVER_USED = TagKey.SERVE_DAG_DRIVER_USED
  11. HTTP_ADAPTER_USED = TagKey.SERVE_HTTP_ADAPTER_USED
  12. GRPC_INGRESS_USED = TagKey.SERVE_GRPC_INGRESS_USED
  13. REST_API_VERSION = TagKey.SERVE_REST_API_VERSION
  14. NUM_APPS = TagKey.SERVE_NUM_APPS
  15. NUM_REPLICAS_LIGHTWEIGHT_UPDATED = TagKey.SERVE_NUM_REPLICAS_LIGHTWEIGHT_UPDATED
  16. USER_CONFIG_LIGHTWEIGHT_UPDATED = TagKey.SERVE_USER_CONFIG_LIGHTWEIGHT_UPDATED
  17. AUTOSCALING_CONFIG_LIGHTWEIGHT_UPDATED = (
  18. TagKey.SERVE_AUTOSCALING_CONFIG_LIGHTWEIGHT_UPDATED
  19. )
  20. DEPLOYMENT_HANDLE_API_USED = TagKey.SERVE_DEPLOYMENT_HANDLE_API_USED
  21. DEPLOYMENT_HANDLE_TO_OBJECT_REF_API_USED = (
  22. TagKey.SERVE_DEPLOYMENT_HANDLE_TO_OBJECT_REF_API_USED
  23. )
  24. MULTIPLEXED_API_USED = TagKey.SERVE_MULTIPLEXED_API_USED
  25. HTTP_PROXY_USED = TagKey.SERVE_HTTP_PROXY_USED
  26. GRPC_PROXY_USED = TagKey.SERVE_GRPC_PROXY_USED
  27. SERVE_STATUS_API_USED = TagKey.SERVE_STATUS_API_USED
  28. SERVE_GET_APP_HANDLE_API_USED = TagKey.SERVE_GET_APP_HANDLE_API_USED
  29. SERVE_GET_DEPLOYMENT_HANDLE_API_USED = TagKey.SERVE_GET_DEPLOYMENT_HANDLE_API_USED
  30. APP_CONTAINER_RUNTIME_ENV_USED = TagKey.SERVE_APP_CONTAINER_RUNTIME_ENV_USED
  31. DEPLOYMENT_CONTAINER_RUNTIME_ENV_USED = (
  32. TagKey.SERVE_DEPLOYMENT_CONTAINER_RUNTIME_ENV_USED
  33. )
  34. NUM_NODE_COMPACTIONS = TagKey.SERVE_NUM_NODE_COMPACTIONS
  35. AUTO_NUM_REPLICAS_USED = TagKey.SERVE_AUTO_NUM_REPLICAS_USED
  36. CUSTOM_REQUEST_ROUTER_USED = TagKey.SERVE_CUSTOM_REQUEST_ROUTER_USED
  37. NUM_REPLICAS_VIA_API_CALL_UPDATED = TagKey.SERVE_NUM_REPLICAS_VIA_API_CALL_UPDATED
  38. NUM_REPLICAS_USING_ASYNCHRONOUS_INFERENCE = (
  39. TagKey.SERVE_NUM_REPLICAS_USING_ASYNCHRONOUS_INFERENCE
  40. )
  41. CUSTOM_AUTOSCALING_POLICY_USED = TagKey.SERVE_CUSTOM_AUTOSCALING_POLICY_USED
  42. def record(self, value: str):
  43. """Record telemetry value."""
  44. record_extra_usage_tag(self.value, value)
  45. def get_value_from_report(self, report: Dict) -> Optional[str]:
  46. """Returns `None` if the tag isn't in the report."""
  47. if "extra_usage_tags" not in report:
  48. return None
  49. return report["extra_usage_tags"].get(TagKey.Name(self.value).lower(), None)