Skip to content

Commit

Permalink
[8.7] [maps] include vector tile layers in geoShapeAggLayersCount tel…
Browse files Browse the repository at this point in the history
…emetry (elastic#151072) (elastic#151089)

# Backport

This will backport the following commits from `main` to `8.7`:
- [[maps] include vector tile layers in geoShapeAggLayersCount telemetry
(elastic#151072)](elastic#151072)

<!--- Backport version: 8.9.7 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Nathan
Reese","email":"reese.nathan@elastic.co"},"sourceCommit":{"committedDate":"2023-02-13T22:49:52Z","message":"[maps]
include vector tile layers in geoShapeAggLayersCount telemetry
(elastic#151072)\n\nWhile investigating
elastic#151064, I\r\nfound a problem
with IndexPatternStatsCollector where geo_shape\r\naggregation usage
with vector tile layers are not counted.\r\n\r\nSteps to view
problem:\r\n* Download [world
countries\r\ngeojson](https://vector.maps.elastic.co/files/world_countries_v7.geo.json?elastic_tile_service_tos=agree&my_app_name=ems-landing-page&my_app_version=8.6.0&license=643c1faf-80fc-4ab0-9323-4d9bd11f4bbc)\r\n*
use file upload to upload world countries into your Elastic stack\r\n*
add a new cluster layer to your map. \r\n * Select world countries
index\r\n * Select **Hexagons**\r\n * Click **Add layer**\r\n * Save
map\r\n* Open borwser dev tools and switch to network tab\r\n* Open
Kibana dev tools and run \r\n ```\r\n POST
kbn:api/telemetry/v2/clusters/_stats\r\n { \"unencrypted\": true }\r\n
```\r\n* Copy response for `_stats` request. Search
for\r\n`geoShapeAggLayersCount`. Notice how the value is zero but it
should be\r\none since you have one map using geo shape
aggregation\r\n<img width=\"600\" alt=\"Screen Shot 2023-02-13 at 1 14
34
PM\"\r\nsrc=\"https://user-images.githubusercontent.com/373691/218565153-0060dd4b-e422-477f-8b07-9f4dabd73064.png\">\r\n\r\n\r\nPR
resolves the problem by removing layer type guard. The guard is
error\r\nprone and easy to not update with new layer types. The guard
does not\r\nprovide any value, since the logic is really concerned with
source types\r\nand the source type guards provide the correct
protections.\r\n\r\nSteps to test:\r\nFollow steps above and verify
`geoShapeAggLayersCount` is
one","sha":"9d7e1095365483ad9bc083829f3f291c478e7cf6","branchLabelMapping":{"^v8.8.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Presentation","release_note:skip","auto-backport","Feature:Maps","v8.7.0","v8.8.0"],"number":151072,"url":"elastic#151072
include vector tile layers in geoShapeAggLayersCount telemetry
(elastic#151072)\n\nWhile investigating
elastic#151064, I\r\nfound a problem
with IndexPatternStatsCollector where geo_shape\r\naggregation usage
with vector tile layers are not counted.\r\n\r\nSteps to view
problem:\r\n* Download [world
countries\r\ngeojson](https://vector.maps.elastic.co/files/world_countries_v7.geo.json?elastic_tile_service_tos=agree&my_app_name=ems-landing-page&my_app_version=8.6.0&license=643c1faf-80fc-4ab0-9323-4d9bd11f4bbc)\r\n*
use file upload to upload world countries into your Elastic stack\r\n*
add a new cluster layer to your map. \r\n * Select world countries
index\r\n * Select **Hexagons**\r\n * Click **Add layer**\r\n * Save
map\r\n* Open borwser dev tools and switch to network tab\r\n* Open
Kibana dev tools and run \r\n ```\r\n POST
kbn:api/telemetry/v2/clusters/_stats\r\n { \"unencrypted\": true }\r\n
```\r\n* Copy response for `_stats` request. Search
for\r\n`geoShapeAggLayersCount`. Notice how the value is zero but it
should be\r\none since you have one map using geo shape
aggregation\r\n<img width=\"600\" alt=\"Screen Shot 2023-02-13 at 1 14
34
PM\"\r\nsrc=\"https://user-images.githubusercontent.com/373691/218565153-0060dd4b-e422-477f-8b07-9f4dabd73064.png\">\r\n\r\n\r\nPR
resolves the problem by removing layer type guard. The guard is
error\r\nprone and easy to not update with new layer types. The guard
does not\r\nprovide any value, since the logic is really concerned with
source types\r\nand the source type guards provide the correct
protections.\r\n\r\nSteps to test:\r\nFollow steps above and verify
`geoShapeAggLayersCount` is
one","sha":"9d7e1095365483ad9bc083829f3f291c478e7cf6"}},"sourceBranch":"main","suggestedTargetBranches":["8.7"],"targetPullRequestStates":[{"branch":"8.7","label":"v8.7.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.8.0","labelRegex":"^v8.8.0$","isSourceBranch":true,"state":"MERGED","url":"elastic#151072
include vector tile layers in geoShapeAggLayersCount telemetry
(elastic#151072)\n\nWhile investigating
elastic#151064, I\r\nfound a problem
with IndexPatternStatsCollector where geo_shape\r\naggregation usage
with vector tile layers are not counted.\r\n\r\nSteps to view
problem:\r\n* Download [world
countries\r\ngeojson](https://vector.maps.elastic.co/files/world_countries_v7.geo.json?elastic_tile_service_tos=agree&my_app_name=ems-landing-page&my_app_version=8.6.0&license=643c1faf-80fc-4ab0-9323-4d9bd11f4bbc)\r\n*
use file upload to upload world countries into your Elastic stack\r\n*
add a new cluster layer to your map. \r\n * Select world countries
index\r\n * Select **Hexagons**\r\n * Click **Add layer**\r\n * Save
map\r\n* Open borwser dev tools and switch to network tab\r\n* Open
Kibana dev tools and run \r\n ```\r\n POST
kbn:api/telemetry/v2/clusters/_stats\r\n { \"unencrypted\": true }\r\n
```\r\n* Copy response for `_stats` request. Search
for\r\n`geoShapeAggLayersCount`. Notice how the value is zero but it
should be\r\none since you have one map using geo shape
aggregation\r\n<img width=\"600\" alt=\"Screen Shot 2023-02-13 at 1 14
34
PM\"\r\nsrc=\"https://user-images.githubusercontent.com/373691/218565153-0060dd4b-e422-477f-8b07-9f4dabd73064.png\">\r\n\r\n\r\nPR
resolves the problem by removing layer type guard. The guard is
error\r\nprone and easy to not update with new layer types. The guard
does not\r\nprovide any value, since the logic is really concerned with
source types\r\nand the source type guards provide the correct
protections.\r\n\r\nSteps to test:\r\nFollow steps above and verify
`geoShapeAggLayersCount` is
one","sha":"9d7e1095365483ad9bc083829f3f291c478e7cf6"}}]}] BACKPORT-->

Co-authored-by: Nathan Reese <reese.nathan@elastic.co>
  • Loading branch information
kibanamachine and nreese committed Feb 14, 2023
1 parent f2ea20f commit 2c7612f
Showing 1 changed file with 1 addition and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import type { SavedObject } from '@kbn/core/server';
import { asyncForEach } from '@kbn/std';
import { KBN_FIELD_TYPES } from '@kbn/field-types';
import { DataViewsService } from '@kbn/data-views-plugin/common';
import { LAYER_TYPE, SCALING_TYPES, SOURCE_TYPES } from '../../../common/constants';
import { SCALING_TYPES, SOURCE_TYPES } from '../../../common/constants';
import { injectReferences } from '../../../common/migrations/references';
import {
ESGeoGridSourceDescriptor,
Expand Down Expand Up @@ -107,14 +107,6 @@ export class IndexPatternStatsCollector {
return false;
}

if (
layer.type !== LAYER_TYPE.GEOJSON_VECTOR &&
layer.type !== LAYER_TYPE.BLENDED_VECTOR &&
layer.type !== LAYER_TYPE.HEATMAP
) {
return false;
}

const sourceDescriptor = layer.sourceDescriptor;
if (sourceDescriptor.type === SOURCE_TYPES.ES_GEO_GRID) {
return await this._isFieldGeoShape(
Expand Down

0 comments on commit 2c7612f

Please sign in to comment.