A deprecation cannot complete without knowing who is still calling, and an aggregate request count answers none of the questions that matter.
$this->metrics->increment('api_requests_total', [
'version' => $route->version(),
'endpoint' => $route->uri(),
'client' => $token->clientId(), // bounded set
]);
// client id is safe as a label because it is a small,
// known set. an IP address or a user id is not.
The client identifier being a bounded set is what makes it usable as a metric label — a per-user breakdown belongs in a log and an aggregation query. Without the per-client dimension the only available action is a blanket announcement; with it, the conversation is with four specific integrators and is much shorter.