将分析数据写入文件

默认情况下,Message Processor 收集的分析数据会上传到 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 会定期将目录及其包含的 .gz 文件从 /tmp 移至以下任一目录,具体取决于 uploadToCloud 消息处理器配置属性的设置:

  • 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. 对所有消息处理器重复上述步骤。