使用探测信息服务创建模式的完整表示。
mozilla-schema-generator的Python项目详细描述
#Mozilla Schema Generator
用于生成Mozilla遥测ping的完整表示的库。
有关ping的更通用结构,请参见[Mozilla管道架构](https://www.github.com/mozilla services/Mozilla管道服务)
。此库采用这些通用结构,并填充
我们希望在适当位置看到的所有探测器。
[主ping](http://gecko docs.mozilla.org.s3.amazonaws.com/toolkit/components/telemetry/telemetry/data/main ping.html)
是历史上的firefox桌面ping,包含了一万多条数据。
2.[收集ping](https://github.com/mozilla/glean廑parser)是为更通用的数据收集创建的新ping类型。
此库从[探测信息服务](https://www.github.com/mozilla/probe scraper)获取这些ping中应包含的信息。
其中的模式用于与
[schema transpiler]集成(https://www.github.com/mozilla/jsonschema transpiler)。
此存储库生成的模式可以转换为avro和bigquery。它们定义了[bq sink]写入的avro和bigquery表的模式(https://www.github.com/mozilla/gcp insertion)
。
这个库可以通过将模式分成多个表来考虑这个限制。每个
表都有一些在每个表中重复的公共信息,然后是该表唯一的字段集。这些表的连接提供了ping中可用的完整
字段集。
要决定表拆分,我们在配置
文件中包含"table_group"配置。例如,"payload/histograms"有"table_group:histograms";这表示
将有一个只输出直方图的表。
下一个表的新字段。
例如,main_histograms_1和main_histograms_2。
注意:只有提供"-split"参数时,表才会被拆分。
生成的模式保证了
更正确,因为它们包括每个度量和探测的显式定义。
gquery):
```
mozilla schema generate main ping--split--out dir main ping
```
out dir参数将是ping的名称空间。
应用程序,对于应用程序发送的每个ping
```
mozilla schema generate glean ping
````
将架构写入目录:
`````
mozilla schema generator generate main ping--out dir main ping
```
若要查看选项的完整列表,请运行"mozilla schema generator generate glean ping--help"。
配置文件
配置文件默认位于`/config`。您还可以在运行生成器时指定自己的配置文件。
配置文件将ping的某些部分与某些类型的探测或度量匹配。配置文件的嵌套
与它正在填充的ping匹配。为了例如,glean将探测类型存储在
"metrics"键下,因此嵌套看起来如下:
```
{
"metrics":{
"string":{
<;metric-id>;:{…}
}
}
}
```
t包含特定的"metric"id>;,模式生成器会这样做。为了包含在ping的那一部分中可以找到的正确度量,
我们将对"config.yaml"文件进行如下组织:
```
度量:
字符串:
匹配:
类型:字符串
````
使用metrics、
和"type:string"的ping模式的操作确保我们只在其中放置string metrics。您可以对来自[probe info service](https://probeinfo.telemetry.mozilla.org/glean/glean/metrics)的ping信息中的任何字段进行精确的
匹配,
它还包含[desktop probe](https://probeinfo.telemetry.mozilla.org/firefox/all/main/all-u probe)。
任何字段下都允许新的附加关键字:
*`contains`-例如`process:contains:main`,表示`process`字段是数组
,它只应与包含条目"main"的字段匹配。
*`not`-例如`send_in_pings:not:glean_ping_info`,表示我们应该匹配
"send_in_pings"的任何字段,但"glean_ping_info"除外。
目前我们不分采摘,只分主打。有关详细信息,请参阅[bigquery
限制和拆分](bigquery限制和拆分)一节。
用于生成Mozilla遥测ping的完整表示的库。
有关ping的更通用结构,请参见[Mozilla管道架构](https://www.github.com/mozilla services/Mozilla管道服务)
。此库采用这些通用结构,并填充
我们希望在适当位置看到的所有探测器。
[主ping](http://gecko docs.mozilla.org.s3.amazonaws.com/toolkit/components/telemetry/telemetry/data/main ping.html)
是历史上的firefox桌面ping,包含了一万多条数据。
2.[收集ping](https://github.com/mozilla/glean廑parser)是为更通用的数据收集创建的新ping类型。
此库从[探测信息服务](https://www.github.com/mozilla/probe scraper)获取这些ping中应包含的信息。
其中的模式用于与
[schema transpiler]集成(https://www.github.com/mozilla/jsonschema transpiler)。
此存储库生成的模式可以转换为avro和bigquery。它们定义了[bq sink]写入的avro和bigquery表的模式(https://www.github.com/mozilla/gcp insertion)
。
这个库可以通过将模式分成多个表来考虑这个限制。每个
表都有一些在每个表中重复的公共信息,然后是该表唯一的字段集。这些表的连接提供了ping中可用的完整
字段集。
要决定表拆分,我们在配置
文件中包含"table_group"配置。例如,"payload/histograms"有"table_group:histograms";这表示
将有一个只输出直方图的表。
下一个表的新字段。
例如,main_histograms_1和main_histograms_2。
注意:只有提供"-split"参数时,表才会被拆分。
生成的模式保证了
更正确,因为它们包括每个度量和探测的显式定义。
gquery):
```
mozilla schema generate main ping--split--out dir main ping
```
out dir参数将是ping的名称空间。
应用程序,对于应用程序发送的每个ping
```
mozilla schema generate glean ping
````
将架构写入目录:
`````
mozilla schema generator generate main ping--out dir main ping
```
若要查看选项的完整列表,请运行"mozilla schema generator generate glean ping--help"。
配置文件
配置文件默认位于`/config`。您还可以在运行生成器时指定自己的配置文件。
配置文件将ping的某些部分与某些类型的探测或度量匹配。配置文件的嵌套
与它正在填充的ping匹配。为了例如,glean将探测类型存储在
"metrics"键下,因此嵌套看起来如下:
```
{
"metrics":{
"string":{
<;metric-id>;:{…}
}
}
}
```
t包含特定的"metric"id>;,模式生成器会这样做。为了包含在ping的那一部分中可以找到的正确度量,
我们将对"config.yaml"文件进行如下组织:
```
度量:
字符串:
匹配:
类型:字符串
````
使用metrics、
和"type:string"的ping模式的操作确保我们只在其中放置string metrics。您可以对来自[probe info service](https://probeinfo.telemetry.mozilla.org/glean/glean/metrics)的ping信息中的任何字段进行精确的
匹配,
它还包含[desktop probe](https://probeinfo.telemetry.mozilla.org/firefox/all/main/all-u probe)。
任何字段下都允许新的附加关键字:
*`contains`-例如`process:contains:main`,表示`process`字段是数组
,它只应与包含条目"main"的字段匹配。
*`not`-例如`send_in_pings:not:glean_ping_info`,表示我们应该匹配
"send_in_pings"的任何字段,但"glean_ping_info"除外。
目前我们不分采摘,只分主打。有关详细信息,请参阅[bigquery
限制和拆分](bigquery限制和拆分)一节。