Skip to content

[Ingest Manager] Add usage collector for telemetry.#69294

Merged
skh merged 18 commits intoelastic:masterfrom
skh:69282-add-ingest-manager-telemetry
Jul 8, 2020
Merged

[Ingest Manager] Add usage collector for telemetry.#69294
skh merged 18 commits intoelastic:masterfrom
skh:69282-add-ingest-manager-telemetry

Conversation

@skh
Copy link
Copy Markdown
Contributor

@skh skh commented Jun 16, 2020

Summary

Implements #69282

This adds and registers a usageCollector for the Ingest Manager plugin according to the telemetry documentation at

How to test this

Run a local setup with Ingest Manager enabled and log in to Kibana once, so that the initial setup of Ingest Manager has been performed.

Trigger a telemetry collection by visiting http://localhost:5601/api/stats?extended=true . In the output, find the ingest_manager key. All telemetry reported by this PR appears in the JSON object belonging to this key. (Some way to pretty-format JSON output is probably helpful, I'm using JSNView for Chrome.)

  • Disable fleet by setting xpack.ingestManager.fleet.enabled: false in kibana.dev.yml or any other means of configuring Kibana. This should result in fleet_enabled: false in the telemetry output. Enable fleet again and verify that you now see fleet_enabled: true
  • With fleet enabled again, enroll one or more agents. The numbers in the agents part of the response should go up correspondingly.
  • When only the default agent config is used, the packages part of the response should list the system package with enabled: true and the endpoint package with enabled: false.
  • Creating more agent configurations and installing more integrations should be reflected in the telemetry output as well.

Known issues

  • I had to do some wild typecasting in https://github.com/elastic/kibana/pull/69294/files#diff-02006980a036f05fecfa9277bb5a1c01R12 in order to use our existing methods to query saved objects. The issue is that according to the existing example code, accessing saved objects from the telemetry collector is done with the return value of core.savedObjects.createInternalRepository(), which for all practical purposes behaves like a SavedObjectsClient, but the types don't match up. SOLVED, see discussion.

  • Accesses to saved objects aren't paginated right now. This code catches and analyses the first 1000 agent configs and the first 20 packages, mirroring what we do elsewhere in Ingest Manager. This is probably instantaneous tech debt -- I can amend this but wanted to open the PR for review now.

@skh skh added v8.0.0 release_note:skip Skip the PR/issue when compiling release notes v7.9.0 Team:Fleet Team label for Observability Data Collection Fleet team Ingest Management:beta1 labels Jun 16, 2020
@skh skh force-pushed the 69282-add-ingest-manager-telemetry branch 4 times, most recently from 7b51935 to a378530 Compare July 6, 2020 09:18
@skh skh force-pushed the 69282-add-ingest-manager-telemetry branch from 32f5b18 to b3f011f Compare July 7, 2020 11:13
@skh skh marked this pull request as ready for review July 7, 2020 13:57
@skh skh requested a review from a team July 7, 2020 13:57
@skh skh requested a review from a team as a code owner July 7, 2020 13:57
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/ingest-management (Team:Ingest Management)

@skh
Copy link
Copy Markdown
Contributor Author

skh commented Jul 7, 2020

I had to do some wild typecasting in https://github.com/elastic/kibana/pull/69294/files#diff-02006980a036f05fecfa9277bb5a1c01R12 in order to use our existing methods to query saved objects. The issue is that according to the existing example code, accessing saved objects from the telemetry collector is done with the return value of core.savedObjects.createInternalRepository(), which for all practical purposes behaves like a SavedObjectsClient, but the types don't match up.

Any advice from @elastic/telemetry here is more than welcome!

@skh skh requested review from jen-huang and nchaulet July 7, 2020 13:58
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi! Butting in here just to say I'm curious about this ... is there a reason you need this "internal repository" vs just savedObjects.client ? And if you do, what's does createInternalRepository() return before you re-cast it as unknown?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was working from this example code:

// server/plugin.ts
import { UsageCollectionSetup } from 'src/plugins/usage_collection/server';
import { CoreSetup, CoreStart } from 'kibana/server';

class Plugin {
  private savedObjectsRepository?: ISavedObjectsRepository;

  public setup(core: CoreSetup, plugins: { usageCollection?: UsageCollectionSetup }) {
    registerMyPluginUsageCollector(() => this.savedObjectsRepository, plugins.usageCollection);
  }

  public start(core: CoreStart) {
    this.savedObjectsRepository = core.savedObjects.createInternalRepository();
  }
}

(from https://github.com/elastic/kibana/blob/master/src/plugins/usage_collection/README.md#new-platform ) and poked at it until it started working.

createInternalRepository() returns a SavedObjectsRepository.

Trying to use it in place of a SavedObjectClient results in this type mismatch:

const soClient: Pick<SavedObjectsRepository, "create" | "bulkCreate" | "delete" | "deleteByNamespace" | "find" | "bulkGet" | "get" | "update" | "addToNamespaces" | "deleteFromNamespaces" | "bulkUpdate" | "incrementCounter">
Argument of type 'Pick<SavedObjectsRepository, "create" | "bulkCreate" | "delete" | "deleteByNamespace" | "find" | "bulkGet" | "get" | "update" | "addToNamespaces" | "deleteFromNamespaces" | "bulkUpdate" | "incrementCounter">' is not assignable to parameter of type 'SavedObjectsClient'.
  Type 'Pick<SavedObjectsRepository, "create" | "bulkCreate" | "delete" | "deleteByNamespace" | "find" | "bulkGet" | "get" | "update" | "addToNamespaces" | "deleteFromNamespaces" | "bulkUpdate" | "incrementCounter">' is missing the following properties from type 'SavedObjectsClient': errors, _repository

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe the @elastic/kibana-platform team can help with this type confusion (personally I also find it hard to understand all the differences between SavedObjectsClient, ISavedObjectsRepository and SavedObjectsClientContract :) ).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of a Zoom discussion: in the usageCollector case we don't have a Kibana request, so we can't use CoreStart.savedObjects.getScopedClient() to get a client.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we try something like this:

import { SavedObjectsClient } from '../../../core/server'; // exact path TBD

export async function getInternalSavedObjectsClient(core: CoreSetup) {
  return core.getStartServices().then(async ([coreStart]) => {
    const savedObjectsRepo = coreStart.savedObjects.createInternalRepository();
    return new SavedObjectsClient(savedObjectsRepo);
  }
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If something like this works, we preserve the "Saved Objects Client" contract needed for the injected methods, and we still create our own "internal" repo for saved objects which will give us access to all objects in all spaces with this client, rather than it being scoped. This relationship feels more intuitive than using the repo directly, also. (I'm not sure if we have a way to get a scoped version but we've suggested to the Telemetry team that it might be helpful to provide this to the fetch method, similar to the way the ES client is already provided there.)

Copy link
Copy Markdown
Contributor Author

@skh skh Jul 8, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This works in local testing:

import { CoreSetup } from 'kibana/server';
import { SavedObjectsClient } from '../../../../../src/core/server';

export async function getInternalSavedObjectsClient(core: CoreSetup) {
  return core.getStartServices().then(async ([coreStart]) => {
    const savedObjectsRepo = coreStart.savedObjects.createInternalRepository();
    return new SavedObjectsClient(savedObjectsRepo);
  });
}

(see 79a1a9a and b03c9c7)

Waiting for feedback from @rudolf if it's safe to override the restricted paths error here. Thanks for the help @rudolf !

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! I think that kibana/server is a magic shortcut to that src/core/server path so you might be able to just push the SavedObjectsClient up into that import with CoreSetup, or at least collapse both imports into whichever format you prefer and just have one import line (if I'm not mistaken on this).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When importing SavedObjectsClient from kibana/server instead I get this error during yarn start (and yes, I did clean and bootstrap):

  log   [14:38:15.704] [fatal][root] { Error: Cannot find module 'kibana/server'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Module.Hook._require.Module.require (/home/skh/projects/kibana/node_modules/require-in-the-middle/index.js:51:29)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/home/skh/projects/kibana/x-pack/plugins/ingest_manager/server/collectors/helpers.ts:7:1)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Module._compile (/home/skh/projects/kibana/node_modules/pirates/lib/index.js:99:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Object.newLoader [as .ts] (/home/skh/projects/kibana/node_modules/pirates/lib/index.js:104:7)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at Module.Hook._require.Module.require (/home/skh/projects/kibana/node_modules/require-in-the-middle/index.js:70:39)
    at Module.Hook._require.Module.require (/home/skh/projects/kibana/node_modules/require-in-the-middle/index.js:70:39)
    at Module.Hook._require.Module.require (/home/skh/projects/kibana/node_modules/require-in-the-middle/index.js:70:39)
    at Module.Hook._require.Module.require (/home/skh/projects/kibana/node_modules/require-in-the-middle/index.js:70:39) code: 'MODULE_NOT_FOUND' }

 FATAL  Error: Cannot find module 'kibana/server'

I did not dig deeper, to be honest.

Copy link
Copy Markdown
Member

@nchaulet nchaulet Jul 7, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do I already have access to the app context in setup()?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately no

@mostlyjason
Copy link
Copy Markdown
Contributor

Thanks @skh!

Copy link
Copy Markdown
Member

@afharo afharo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

I'll try to fix the schema issues to support arrays!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe the @elastic/kibana-platform team can help with this type confusion (personally I also find it hard to understand all the differences between SavedObjectsClient, ISavedObjectsRepository and SavedObjectsClientContract :) ).

@skh
Copy link
Copy Markdown
Contributor Author

skh commented Jul 7, 2020

@jen-huang @nchaulet While the discussion about how best to get a SavedObjectsClient is ongoing, your input on the actual telemetry part would be highly appreciated!

Copy link
Copy Markdown
Member

@nchaulet nchaulet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few comment on variables naming but looks good to me

Comment on lines 44 to 57
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI: the type errors might be fixed by #70988 :)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 thanks! Should I wait for that one to be merged and rebase, or is it ok if I add our schema in a followup PR?

@skh skh force-pushed the 69282-add-ingest-manager-telemetry branch from c31f43d to c226897 Compare July 8, 2020 10:57
@skh skh mentioned this pull request Jul 8, 2020
@skh skh requested a review from jasonrhodes July 8, 2020 12:05
Copy link
Copy Markdown
Member

@jasonrhodes jasonrhodes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just had a comment about the import paths. Hooray for telemetry!

@kibanamachine
Copy link
Copy Markdown
Contributor

💛 Build succeeded, but was flaky


Test Failures

Firefox UI Functional Tests.test/functional/apps/visualize/_tsvb_chart·ts.visualize app visual builder "before each" hook for "should be able to switch between index patterns"

Link to Jenkins

Standard Out

[00:00:00]       │
[00:11:57]         └-: visualize app
[00:11:57]           └-> "before all" hook
[00:11:57]           └-> "before all" hook
[00:11:57]             │ debg Starting visualize before method
[00:11:57]             │ info [logstash_functional] Loading "mappings.json"
[00:11:57]             │ info [logstash_functional] Loading "data.json.gz"
[00:11:57]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [logstash-2015.09.22] creating index, cause [api], templates [], shards [1]/[0]
[00:11:57]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] current.health="GREEN" message="Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[logstash-2015.09.22][0]]])." previous.health="YELLOW" reason="shards started [[logstash-2015.09.22][0]]"
[00:11:57]             │ info [logstash_functional] Created index "logstash-2015.09.22"
[00:11:57]             │ debg [logstash_functional] "logstash-2015.09.22" settings {"index":{"analysis":{"analyzer":{"url":{"max_token_length":"1000","tokenizer":"uax_url_email","type":"standard"}}},"number_of_replicas":"0","number_of_shards":"1"}}
[00:11:57]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [logstash-2015.09.20] creating index, cause [api], templates [], shards [1]/[0]
[00:11:57]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] current.health="GREEN" message="Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[logstash-2015.09.20][0]]])." previous.health="YELLOW" reason="shards started [[logstash-2015.09.20][0]]"
[00:11:57]             │ info [logstash_functional] Created index "logstash-2015.09.20"
[00:11:57]             │ debg [logstash_functional] "logstash-2015.09.20" settings {"index":{"analysis":{"analyzer":{"url":{"max_token_length":"1000","tokenizer":"uax_url_email","type":"standard"}}},"number_of_replicas":"0","number_of_shards":"1"}}
[00:11:57]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [logstash-2015.09.21] creating index, cause [api], templates [], shards [1]/[0]
[00:11:57]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] current.health="GREEN" message="Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[logstash-2015.09.21][0]]])." previous.health="YELLOW" reason="shards started [[logstash-2015.09.21][0]]"
[00:11:57]             │ info [logstash_functional] Created index "logstash-2015.09.21"
[00:11:57]             │ debg [logstash_functional] "logstash-2015.09.21" settings {"index":{"analysis":{"analyzer":{"url":{"max_token_length":"1000","tokenizer":"uax_url_email","type":"standard"}}},"number_of_replicas":"0","number_of_shards":"1"}}
[00:12:06]             │ info [logstash_functional] Indexed 4633 docs into "logstash-2015.09.22"
[00:12:06]             │ info [logstash_functional] Indexed 4757 docs into "logstash-2015.09.20"
[00:12:06]             │ info [logstash_functional] Indexed 4614 docs into "logstash-2015.09.21"
[00:12:07]             │ info [long_window_logstash] Loading "mappings.json"
[00:12:07]             │ info [long_window_logstash] Loading "data.json.gz"
[00:12:07]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [long-window-logstash-0] creating index, cause [api], templates [], shards [1]/[0]
[00:12:07]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] current.health="GREEN" message="Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[long-window-logstash-0][0]]])." previous.health="YELLOW" reason="shards started [[long-window-logstash-0][0]]"
[00:12:07]             │ info [long_window_logstash] Created index "long-window-logstash-0"
[00:12:07]             │ debg [long_window_logstash] "long-window-logstash-0" settings {"index":{"analysis":{"analyzer":{"makelogs_url":{"max_token_length":"1000","tokenizer":"uax_url_email","type":"standard"}}},"number_of_replicas":"0","number_of_shards":"1"}}
[00:12:17]             │ info progress: 12560
[00:12:18]             │ info [long_window_logstash] Indexed 14005 docs into "long-window-logstash-0"
[00:12:18]             │ info [visualize] Loading "mappings.json"
[00:12:18]             │ info [visualize] Loading "data.json"
[00:12:18]             │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [.kibana_1/u5KKtSOXSbilFJEGfQqAgA] deleting index
[00:12:18]             │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [.kibana_2/aRHKqgJIR3KEVZ6svCWowA] deleting index
[00:12:18]             │ info [visualize] Deleted existing index [".kibana_2",".kibana_1"]
[00:12:18]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [.kibana] creating index, cause [api], templates [], shards [1]/[1]
[00:12:18]             │ info [visualize] Created index ".kibana"
[00:12:18]             │ debg [visualize] ".kibana" settings {"index":{"number_of_replicas":"1","number_of_shards":"1"}}
[00:12:18]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [.kibana/Omkn5Ps_TwKpNq4BAHA7Mg] update_mapping [_doc]
[00:12:18]             │ info [visualize] Indexed 12 docs into ".kibana"
[00:12:18]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [.kibana/Omkn5Ps_TwKpNq4BAHA7Mg] update_mapping [_doc]
[00:12:18]             │ debg Migrating saved objects
[00:12:18]             │ proc [kibana]   log   [11:39:49.827] [info][savedobjects-service] Creating index .kibana_2.
[00:12:18]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [.kibana_2] creating index, cause [api], templates [], shards [1]/[1]
[00:12:18]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] updating number_of_replicas to [0] for indices [.kibana_2]
[00:12:18]             │ proc [kibana]   log   [11:39:49.886] [info][savedobjects-service] Reindexing .kibana to .kibana_1
[00:12:18]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [.kibana_1] creating index, cause [api], templates [], shards [1]/[1]
[00:12:18]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] updating number_of_replicas to [0] for indices [.kibana_1]
[00:12:19]             │ info [o.e.t.LoggingTaskListener] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] 8986 finished with response BulkByScrollResponse[took=39.1ms,timed_out=false,sliceId=null,updated=0,created=12,deleted=0,batches=1,versionConflicts=0,noops=0,retries=0,throttledUntil=0s,bulk_failures=[],search_failures=[]]
[00:12:19]             │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [.kibana/Omkn5Ps_TwKpNq4BAHA7Mg] deleting index
[00:12:19]             │ proc [kibana]   log   [11:39:50.214] [info][savedobjects-service] Migrating .kibana_1 saved objects to .kibana_2
[00:12:19]             │ proc [kibana]   log   [11:39:50.222] [error][savedobjects-service] Error: Unable to migrate the corrupt Saved Object document index-pattern:test_index*. To prevent Kibana from performing a migration on every restart, please delete or fix this document by ensuring that the namespace and type in the document's id matches the values in the namespace and type fields.
[00:12:19]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [.kibana_2/nLLi5fElSrKHzQQG6lOf_g] update_mapping [_doc]
[00:12:19]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [.kibana_2/nLLi5fElSrKHzQQG6lOf_g] update_mapping [_doc]
[00:12:19]             │ proc [kibana]   log   [11:39:50.304] [info][savedobjects-service] Pointing alias .kibana to .kibana_2.
[00:12:19]             │ proc [kibana]   log   [11:39:50.349] [info][savedobjects-service] Finished in 523ms.
[00:12:19]             │ debg applying update to kibana config: {"accessibility:disableAnimations":true,"dateFormat:tz":"UTC"}
[00:12:19]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1594206446179995014] [.kibana_2/nLLi5fElSrKHzQQG6lOf_g] update_mapping [_doc]
[00:12:20]             │ debg replacing kibana config doc: {"defaultIndex":"logstash-*","format:bytes:defaultPattern":"0,0.[000]b"}
[00:12:55]           └-: 
[00:12:55]             └-> "before all" hook
[00:12:55]             └-: visual builder
[00:12:55]               └-> "before all" hook

Stack Trace

Error: retry.try timeout: Error: retry.try timeout: TimeoutError: Waiting for element to be located By(css selector, [data-test-subj="createVisualizationPromptButton"])
Wait timed out after 10015ms
    at /dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/webdriver.js:842:17
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at onFailure (test/common/services/retry/retry_for_success.ts:28:9)
    at retryForSuccess (test/common/services/retry/retry_for_success.ts:68:13)
    at onFailure (test/common/services/retry/retry_for_success.ts:28:9)
    at retryForSuccess (test/common/services/retry/retry_for_success.ts:68:13)

Build metrics

✅ unchanged

History

  • 💚 Build #59450 succeeded cb745ca0f0d34b7d963cfe9d3b7464f93985c17f
  • 💚 Build #59388 succeeded 89dad84eefb88c3e3225817b43472388336f5198
  • 💚 Build #59330 succeeded b3f011f6e8c171473f920438ba507de86556517f
  • 💔 Build #59266 failed 32f5b18aac1ef0c0be024a92cc0539b56c670d2e
  • 💚 Build #59023 succeeded 4834e02415cdbe84b3748feb8af3f53f3a01193e

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@skh skh merged commit 637a0d9 into elastic:master Jul 8, 2020
@skh skh deleted the 69282-add-ingest-manager-telemetry branch July 8, 2020 13:06
skh added a commit to skh/kibana that referenced this pull request Jul 8, 2020
* Add usage collector for telemetry.

* Make minimal usage collector work.

* Add all fields to Usage and schema

* Type packages as array.

* Temporarily remove schema.

* Temporarily exclude our collector from schema checks.

* Add fleet telemetry.

* Remove events from agent stats.

* Add package telemetry.

* Use correct import.

* Add telemetry about enabled packages.

* Clean up comments.

* Update x-pack/plugins/ingest_manager/server/collectors/package_collectors.ts

Co-authored-by: Alejandro Fernández Haro <afharo@gmail.com>

* Update x-pack/plugins/ingest_manager/server/collectors/package_collectors.ts

Co-authored-by: Nicolas Chaulet <n.chaulet@gmail.com>

* Correctly check for element in array.

* Use a real SavedObjectsClient.

* Remove useless use of undefined.

* Use less deep path to import SavedObjectsClient.

Co-authored-by: Alejandro Fernández Haro <afharo@gmail.com>
Co-authored-by: Nicolas Chaulet <n.chaulet@gmail.com>
skh added a commit that referenced this pull request Jul 8, 2020
* Add usage collector for telemetry.

* Make minimal usage collector work.

* Add all fields to Usage and schema

* Type packages as array.

* Temporarily remove schema.

* Temporarily exclude our collector from schema checks.

* Add fleet telemetry.

* Remove events from agent stats.

* Add package telemetry.

* Use correct import.

* Add telemetry about enabled packages.

* Clean up comments.

* Update x-pack/plugins/ingest_manager/server/collectors/package_collectors.ts

Co-authored-by: Alejandro Fernández Haro <afharo@gmail.com>

* Update x-pack/plugins/ingest_manager/server/collectors/package_collectors.ts

Co-authored-by: Nicolas Chaulet <n.chaulet@gmail.com>

* Correctly check for element in array.

* Use a real SavedObjectsClient.

* Remove useless use of undefined.

* Use less deep path to import SavedObjectsClient.

Co-authored-by: Alejandro Fernández Haro <afharo@gmail.com>
Co-authored-by: Nicolas Chaulet <n.chaulet@gmail.com>

Co-authored-by: Alejandro Fernández Haro <afharo@gmail.com>
Co-authored-by: Nicolas Chaulet <n.chaulet@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release_note:skip Skip the PR/issue when compiling release notes Team:Fleet Team label for Observability Data Collection Fleet team v7.9.0 v8.0.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants