As we are rolling out the user profile feature, we'd like to expand the [Usage API](https://www.elastic.co/guide/en/elasticsearch/reference/current/usage-api.html) to report usage stats of user profiles such as (1) number of enabled user profiles and (2) number of user profiles that are [activated](https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-activate-user-profile.html) over the past X days. 

Response of the Usage API already contains a `security` field that groups relevant stats from security related features. We expect the new stats for user profiles should be added under it as well, for example:
```
{
  "security: {
    "user_profile": {
      "activated": 78,
      "recently_activated": 42  <1>
    }
  }
}
```
<1> The use of `recently_` is chosen to avoid the field to be tied to a specific time period so it is easier to evolve the definition in future.

x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/profile/ProfileServiceTests.java
client,
                UpdateAction.INSTANCE,
                SECURITY_PROFILE_ALIAS,
                (String) invocation.getArguments()[1]
            )
        ).when(client).prepareUpdate(eq(SECURITY_PROFILE_ALIAS), anyString());
        // 
        final var versionConflictEngineException = new VersionConflictEngineException(mock(ShardId.class), "", "");
        doAnswer(invocation -> {
            @SuppressWarnings("unchecked")
            final ActionListener<UpdateResponse> listener = (ActionListener<UpdateResponse>) invocation.getArguments()[1];
            listener.onFailure(versionConflictEngineException);
            return null;
        }).when(service).doUpdate(any(), anyActionListener());
        final Subject subject = AuthenticationTestHelper.builder().realm().build().getEffectiveSubject();
        final var versionedDocument = new ProfileService.VersionedDocument(ProfileDocument.fromSubject(subject), 1, 0);
        final ResourceNotFoundException getException = new ResourceNotFoundException("not found");
        SecurityMocks.mockGetRequestException(client, getException);
        doAnswer(invocation -> {
            final GetRequest getRequest = (GetRequest) invocation.getArguments()[1];
            @SuppressWarnings("unchecked")
            final var listener = (ActionListener<GetResponse>) invocation.getArguments()[2];
            client.get(getRequest, listener);
            return null;
        }).when(client).execute(eq(GetAction.INSTANCE), any(GetRequest.class), anyActionListener());
        // 
        doAnswer(invocation -> false).when(service).shouldSkipUpdateForActivate(any(), any());
        final PlainActionFuture<Profile> future = new PlainActionFuture<>();
        service.updateProfileForActivate(subject, versionedDocument, future);
        assertThat(expectThrows(ResourceNotFoundException.class, future::actionGet), sameInstance(getException));