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
assertThat(e1.getMessage(), containsString("profile should not be created for internal user"));
    }
    public void testFailureForParsingDifferentiator() throws IOException {
        final Subject subject = AuthenticationTestHelper.builder().realm().build(false).getEffectiveSubject();
        final PlainActionFuture<Profile> future1 = new PlainActionFuture<>();
        profileService.maybeIncrementDifferentiatorAndCreateNewProfile(subject, randomProfileDocument(randomAlphaOfLength(20)), future1);
        final ElasticsearchException e1 = expectThrows(ElasticsearchException.class, future1::actionGet);
        assertThat(e1.getMessage(), containsString("does not contain any underscore character"));
        final PlainActionFuture<Profile> future2 = new PlainActionFuture<>();
        profileService.maybeIncrementDifferentiatorAndCreateNewProfile(
            subject,
            randomProfileDocument(randomAlphaOfLength(20) + "_"),
            future2
        );
        final ElasticsearchException e2 = expectThrows(ElasticsearchException.class, future2::actionGet);
        assertThat(e2.getMessage(), containsString("does not contain a differentiator"));
        final PlainActionFuture<Profile> future3 = new PlainActionFuture<>();
        profileService.maybeIncrementDifferentiatorAndCreateNewProfile(
            subject,
            randomProfileDocument(randomAlphaOfLength(20) + "_" + randomAlphaOfLengthBetween(1, 3)),
            future3
        );
        final ElasticsearchException e3 = expectThrows(ElasticsearchException.class, future3::actionGet);
        assertThat(e3.getMessage(), containsString("differentiator is not a number"));
    }
    public void testLiteralUsernameWillThrowOnDuplicate() throws IOException {
        final Subject subject = new Subject(AuthenticationTestHelper.randomUser(), AuthenticationTestHelper.randomRealmRef(true));
        final ProfileService service = new ProfileService(
            Settings.EMPTY,
            Clock.systemUTC(),