Skip to content

Commit e5265e9

Browse files
authored
[7.x] [Telemetry] [Schema] remove number type and support all es number types (#81774) (#82098)
1 parent f2bbba4 commit e5265e9

File tree

17 files changed

+55
-68
lines changed

17 files changed

+55
-68
lines changed

packages/kbn-telemetry-tools/GUIDELINE.md

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -148,14 +148,7 @@ usageCollection.makeUsageCollector<Usage>({
148148
Any field property in the schema accepts a `type` field. By default the type is `object` which accepts nested properties under it. Currently we accept the following property types:
149149

150150
```
151-
AllowedSchemaTypes =
152-
| 'keyword'
153-
| 'text'
154-
| 'number'
155-
| 'boolean'
156-
| 'long'
157-
| 'date'
158-
| 'float';
151+
'long', 'integer', 'short', 'byte', 'double', 'float', 'keyword', 'text', 'boolean', 'date'
159152
```
160153

161154

packages/kbn-telemetry-tools/src/tools/__fixture__/mock_schema.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@
88
"my_index_signature_prop": {
99
"properties": {
1010
"avg": {
11-
"type": "number"
11+
"type": "float"
1212
},
1313
"count": {
14-
"type": "number"
14+
"type": "long"
1515
},
1616
"max": {
17-
"type": "number"
17+
"type": "long"
1818
},
1919
"min": {
20-
"type": "number"
20+
"type": "long"
2121
}
2222
}
2323
},
@@ -27,7 +27,7 @@
2727
"my_objects": {
2828
"properties": {
2929
"total": {
30-
"type": "number"
30+
"type": "long"
3131
},
3232
"type": {
3333
"type": "boolean"
@@ -39,7 +39,7 @@
3939
"items": {
4040
"properties": {
4141
"total": {
42-
"type": "number"
42+
"type": "long"
4343
},
4444
"type": {
4545
"type": "boolean"

packages/kbn-telemetry-tools/src/tools/__fixture__/parsed_indexed_interface_with_not_matching_schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export const parsedIndexedInterfaceWithNoMatchingSchema: ParsedUsageCollection =
2828
value: {
2929
something: {
3030
count_1: {
31-
type: 'number',
31+
type: 'long',
3232
},
3333
},
3434
},

packages/kbn-telemetry-tools/src/tools/__fixture__/parsed_schema_defined_with_spreads_collector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export const parsedSchemaDefinedWithSpreadsCollector: ParsedUsageCollection = [
3434
},
3535
my_objects: {
3636
total: {
37-
type: 'number',
37+
type: 'long',
3838
},
3939
type: {
4040
type: 'boolean',

packages/kbn-telemetry-tools/src/tools/__fixture__/parsed_working_collector.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,21 +34,21 @@ export const parsedWorkingCollector: ParsedUsageCollection = [
3434
},
3535
my_index_signature_prop: {
3636
avg: {
37-
type: 'number',
37+
type: 'float',
3838
},
3939
count: {
40-
type: 'number',
40+
type: 'long',
4141
},
4242
max: {
43-
type: 'number',
43+
type: 'long',
4444
},
4545
min: {
46-
type: 'number',
46+
type: 'long',
4747
},
4848
},
4949
my_objects: {
5050
total: {
51-
type: 'number',
51+
type: 'long',
5252
},
5353
type: {
5454
type: 'boolean',
@@ -58,7 +58,7 @@ export const parsedWorkingCollector: ParsedUsageCollection = [
5858
type: 'array',
5959
items: {
6060
total: {
61-
type: 'number',
61+
type: 'long',
6262
},
6363
type: { type: 'boolean' },
6464
},

packages/kbn-telemetry-tools/src/tools/__snapshots__/extract_collectors.test.ts.snap

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/kbn-telemetry-tools/src/tools/check_collector__integrity.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ describe('checkMatchingMapping', () => {
4444
it('returns diff on mismatching parsedCollections and stored mapping', async () => {
4545
const mockSchema = await parseJsonFile('mock_schema.json');
4646
const malformedParsedCollector = cloneDeep(parsedWorkingCollector);
47-
const fieldMapping = { type: 'number' };
47+
const fieldMapping = { type: 'long' };
4848
malformedParsedCollector[1].schema.value.flat = fieldMapping;
4949

5050
const diffs = checkMatchingMapping([malformedParsedCollector], mockSchema);
@@ -61,9 +61,9 @@ describe('checkMatchingMapping', () => {
6161
const mockSchema = await parseJsonFile('mock_schema.json');
6262
const malformedParsedCollector = cloneDeep(parsedWorkingCollector);
6363
const collectorName = 'New Collector in town!';
64-
const collectorMapping = { some_usage: { type: 'number' } };
64+
const collectorMapping = { some_usage: { type: 'long' } };
6565
malformedParsedCollector[1].collectorName = collectorName;
66-
malformedParsedCollector[1].schema.value = { some_usage: { type: 'number' } };
66+
malformedParsedCollector[1].schema.value = { some_usage: { type: 'long' } };
6767

6868
const diffs = checkMatchingMapping([malformedParsedCollector], mockSchema);
6969
expect(diffs).toEqual({

packages/kbn-telemetry-tools/src/tools/manage_schema.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,9 @@
1919

2020
import { ParsedUsageCollection } from './ts_parser';
2121

22-
export type AllowedSchemaTypes =
23-
| 'keyword'
24-
| 'text'
25-
| 'number'
26-
| 'boolean'
27-
| 'long'
28-
| 'date'
29-
| 'float';
22+
export type AllowedSchemaNumberTypes = 'long' | 'integer' | 'short' | 'byte' | 'double' | 'float';
23+
24+
export type AllowedSchemaTypes = AllowedSchemaNumberTypes | 'keyword' | 'text' | 'boolean' | 'date';
3025

3126
export function compatibleSchemaTypes(type: AllowedSchemaTypes | 'array') {
3227
switch (type) {
@@ -36,9 +31,12 @@ export function compatibleSchemaTypes(type: AllowedSchemaTypes | 'array') {
3631
return 'string';
3732
case 'boolean':
3833
return 'boolean';
39-
case 'number':
40-
case 'float':
4134
case 'long':
35+
case 'integer':
36+
case 'short':
37+
case 'byte':
38+
case 'double':
39+
case 'float':
4240
return 'number';
4341
case 'array':
4442
return 'array';

src/fixtures/telemetry_collectors/schema_defined_with_spreads_collector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ const someSchema: MakeSchemaFrom<Pick<Usage, 'flat' | 'my_str'>> = {
4949
const someOtherSchema: MakeSchemaFrom<Pick<Usage, 'my_objects'>> = {
5050
my_objects: {
5151
total: {
52-
type: 'number',
52+
type: 'long',
5353
},
5454
type: { type: 'boolean' },
5555
},

src/fixtures/telemetry_collectors/working_collector.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,25 +85,25 @@ export const myCollector = makeUsageCollector<Usage>({
8585
},
8686
my_objects: {
8787
total: {
88-
type: 'number',
88+
type: 'long',
8989
},
9090
type: { type: 'boolean' },
9191
},
9292
my_array: {
9393
type: 'array',
9494
items: {
9595
total: {
96-
type: 'number',
96+
type: 'long',
9797
},
9898
type: { type: 'boolean' },
9999
},
100100
},
101101
my_str_array: { type: 'array', items: { type: 'keyword' } },
102102
my_index_signature_prop: {
103-
count: { type: 'number' },
104-
avg: { type: 'number' },
105-
max: { type: 'number' },
106-
min: { type: 'number' },
103+
count: { type: 'long' },
104+
avg: { type: 'float' },
105+
max: { type: 'long' },
106+
min: { type: 'long' },
107107
},
108108
},
109109
});

0 commit comments

Comments
 (0)