将分析数据写入文件

默认情况下,消息处理器收集的分析数据会上传到 Qpid 和 Postgres 进行处理。然后,您可以在 Edge 界面中查看分析数据。

或者,您也可以配置消息处理器以将分析数据写入磁盘。然后,您可以将这些数据上传到自己的分析系统,以供分析之用。例如,您可以将数据上传到 Google Cloud BigQuery。然后,您可以利用 BigQuery 和 TensorFlow 提供的强大查询和机器学习功能来执行您自己的数据分析。

您也可以选择同时使用这两个选项。这意味着您可以将分析数据上传到 Qpid/Postgres 并将数据保存到磁盘。

文件名和位置

默认情况下,如果您启用了将分析数据写入磁盘文件的功能,则文件将写入以下目录:

/opt/apigee/var/log/edge-message-processor/ax/tmp

Edge 会以一分钟间隔为数据文件在 /tmp 下创建一个新目录。目录名称的格式为:

org~env~yyyyMMddhhmmss

例如:

myorg~prod~20190909163500
myorg~prod~20190909163600

每个目录都包含一个 .gz 文件,其中包含该间隔的各个数据文件。.gz 文件名的格式为:

4DigitRandomHex_StartTime.StartTimePlusInterval_internalHostIP_hostUUID_writer_index.txt.gz

Edge 会根据 uploadToCloud 消息处理器配置属性的设置,定期将目录及其包含的 .gz 文件从 /tmp 移至以下任一目录:

  • uploadToCloud = false:文件已移至“/opt/apigee/var/log/edge-message-processor/ax/staging
  • uploadToCloud = true:(默认):文件会移至 /opt/apigee/var/log/edge-message-processor/ax/failed

/staging/failed 目录解压缩数据以获取分析数据文件。

配置属性

使用以下属性配置消息处理器,以便将分析数据写入磁盘。 以下所有属性均为可选属性:

媒体资源 说明
conf_analytics_analytics.saveToDisk

设置为 true 可配置消息处理器以将分析数据写入磁盘文件。

默认值为 false

conf_analytics_analytics.sendToQueue

设置为 true 以配置消息处理器,以便将数据上传到 Qpid/Postgres。 设置为 false 可禁止将分析数据写入 Qpid/Postgres。

默认值为 true

conf_analytics_analytics.baseDataDirectoryPath

指定写入分析数据文件的基本路径。

默认值为 /opt/apigee/var/log/edge-message-processor/ax.

conf_analytics_analytics.allocatedDiskSpaceInMBytes

指定为分析文件分配的磁盘空间(以兆字节为单位)。

默认值为 3072。如果超过了为分析数据文件分配的磁盘空间,消息处理器会停止保存分析数据,并在其日志文件中写入错误消息。

conf_analytics_analytics.uploadToCloud

控制分析文件的最终位置。

  • false:文件已移至“/opt/apigee/var/log/edge-message-processor/ax/staging
  • true(默认):将文件移至 /opt/apigee/var/log/edge-message-processor/ax/failed

注意:即使此属性名为 uploadToCloud,也不会将数据上传到云端。所有分析数据仍位于您的安装本地。

如需设置这些属性,请执行以下操作:

  1. 通过编辑器打开 message-processor.properties 文件。 如果该文件不存在,请创建一个:

    vi /opt/apigee/customer/application/message-processor.properties
  2. 根据需要设置属性:

    # Enable writing analytics data to disk.
    conf_analytics_analytics.saveToDisk=true
    # Disable writing analytics data to Qpid/Postgres.
    conf_analytics_analytics.sendToQueue=false
    
    # Specify base directory for analytics data files.
    conf_analytics_analytics.baseDataDirectoryPath=/opt/apigee/var/smg
    
    # Set the disk space available for analytics files.
    conf_analytics_analytics.allocatedDiskSpaceInMBytes=3072
    # Move final analytics data to files to the /staging directory.
    conf_analytics_analytics.uploadToCloud=false
  3. 保存更改。
  4. 确保属性文件归“apigee”用户所有:

    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. axgroup-001 分析组的 consumer-type 属性的值设置为 ax

    curl -X POST -H "Content-Type:application/json" \
    "http://ms-ip:8080/v1/analytics/groups/ax/axgroup-001/properties?propName=consumer-type&propValue=ax" \
    -u sysAdminEmail:sysAdminPWord

    默认情况下,该分析群组的名称为 axgroup-001。在 Edge 安装的配置文件中,您可以使用 AXGROUP 属性设置分析组的名称。如果您不确定分析组的名称,请在管理服务器节点上运行以下命令以显示分析组:

    apigee-adminapi.sh analytics groups list \
      --admin sysAdminEmail --pwd sysAdminPword --host localhost

    此命令会在 name 字段中返回分析群组名称。

  6. 重新启动消息处理器:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    重启后,消息处理器会将分析数据写入数据文件。

  7. 对所有消息处理器重复上述步骤。