[Synthetics] Add Browser data streams#1064
Conversation
💚 Build Succeeded
Expand to view the summary
Build stats
Test stats 🧪
Trends 🧪 |
#27052) Creates a new offline tagged docker image that includes the dependencies required for synthetics. Building elastic-agent docker images will now create additional -offline tagged images with these extras. We may need to do additional work to ensure that these additional images are incorporated into the release process and onto the public website. These changes also set the ELASTIC_SYNTHETICS_CAPABLE env flag, as done in heartbeat, to enable synthetics features in the docker environment. This dovetails with the work @dominiqueclarke is doing in elastic/integrations#1064 and elsewhere Fixes #22932
#27052) Creates a new offline tagged docker image that includes the dependencies required for synthetics. Building elastic-agent docker images will now create additional -offline tagged images with these extras. We may need to do additional work to ensure that these additional images are incorporated into the release process and onto the public website. These changes also set the ELASTIC_SYNTHETICS_CAPABLE env flag, as done in heartbeat, to enable synthetics features in the docker environment. This dovetails with the work @dominiqueclarke is doing in elastic/integrations#1064 and elsewhere Fixes #22932 (cherry picked from commit 4727470)
#27052) (#27324) Creates a new offline tagged docker image that includes the dependencies required for synthetics. Building elastic-agent docker images will now create additional -offline tagged images with these extras. We may need to do additional work to ensure that these additional images are incorporated into the release process and onto the public website. These changes also set the ELASTIC_SYNTHETICS_CAPABLE env flag, as done in heartbeat, to enable synthetics features in the docker environment. This dovetails with the work @dominiqueclarke is doing in elastic/integrations#1064 and elsewhere Fixes #22932 (cherry picked from commit 4727470) Co-authored-by: Andrew Cholakian <andrew@andrewvc.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
Pinging @elastic/uptime (Team:Uptime) |
| {{#if tags}} | ||
| tags: {{tags}} | ||
| {{/if}} | ||
| {{#if source.zip_url.username}} |
There was a problem hiding this comment.
I notice that the various fields for zip_url are all specifically enumerated. Is it easier just to say zip_url takes a JSON blob and leave it to the Kibana UI code to put the right fields in?
There was a problem hiding this comment.
This is a great idea. I love it. I think it'll provide a lot more flexibility to add new nested keys to the UI without having to do a corresponding change on the integrations package side.
However, the UI is not currently set up to support this. Each field receives a key corresponding to the correct parameter, resulting in the UI in a large object with with all the field names, using dot notation for the nested fields, and the field values. So we have an object that looks like
{
'source.zip_url.username': 'username',
'source.zip_url.password': 'password'
}
Fleet exposes an integration policy object that represents the policy values. It looks something like
{
'source.zip_url.username': {
value: '',
type: 'text,
},
'source.zip_url.password': {
value: '',
type: 'text,
}
}
We iterate over the first object's keys and assign values to the exposed fleet policy.
https://github.com/elastic/kibana/blob/master/x-pack/plugins/uptime/public/components/fleet_package/use_update_policy.ts#L62
Which ends up looking something like
dataStream.vars['source.zip_url.username'].value = ourConfig.source.zip_url.username;
So the UI doesn't currently support nested keys. It is a flattened object.
To do this properly, we should convert all of the fields in http, tcp, icmp, and browser to only expose their top level params and allow the UI to handle nested params.
We can then transform our flatted object into a nested object, and use those values to populate nested fields.
I don't think that'll make it in for 7.15, but sounds like it could be a useful refactor for 7.16. Thoughts?
There was a problem hiding this comment.
That makes sense. Let's keep it the way it is now and reevaluate going forward
packages/synthetics/data_stream/browser_screenshot/fields/base-fields.yml
Show resolved
Hide resolved
| @@ -0,0 +1,39 @@ | |||
| - name: tls | |||
There was a problem hiding this comment.
We can nix this file for screenshots
| @@ -0,0 +1,30 @@ | |||
| - name: tcp | |||
There was a problem hiding this comment.
We can nix this file for screenshots
| @@ -0,0 +1,18 @@ | |||
| - name: resolve | |||
There was a problem hiding this comment.
We can nix this file for screenshots
| @@ -0,0 +1,91 @@ | |||
| - name: http | |||
There was a problem hiding this comment.
We can nix this file for screenshots
#27052) Creates a new offline tagged docker image that includes the dependencies required for synthetics. Building elastic-agent docker images will now create additional -offline tagged images with these extras. We may need to do additional work to ensure that these additional images are incorporated into the release process and onto the public website. These changes also set the ELASTIC_SYNTHETICS_CAPABLE env flag, as done in heartbeat, to enable synthetics features in the docker environment. This dovetails with the work @dominiqueclarke is doing in elastic/integrations#1064 and elsewhere Fixes #22932 (cherry picked from commit 4727470) # Conflicts: # dev-tools/mage/dockerbuilder.go
#27052) (#27324) Creates a new offline tagged docker image that includes the dependencies required for synthetics. Building elastic-agent docker images will now create additional -offline tagged images with these extras. We may need to do additional work to ensure that these additional images are incorporated into the release process and onto the public website. These changes also set the ELASTIC_SYNTHETICS_CAPABLE env flag, as done in heartbeat, to enable synthetics features in the docker environment. This dovetails with the work @dominiqueclarke is doing in elastic/integrations#1064 and elsewhere Fixes #22932 (cherry picked from commit 4727470) Co-authored-by: Andrew Cholakian <andrew@andrewvc.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit f9b2610) # Conflicts: # dev-tools/mage/dockerbuilder.go
Relates to elastic/uptime#219
Type of change
What does this PR do?
This PR adds the
browser,browser_screenshot, andbrowser_networkdata streams to the synthetics package.This PR is a draft state.
Checklist
changelog.ymlfile.manifest.ymlfile to point to the latest Elastic stack release (e.g.^7.13.0). (Note: Even though this PR introduces a new feature, I have opted out of increasing the stack release constraint, as this version is compatible with 7.14 as it is additive).