将分析数据写入文件

默认情况下,消息处理器收集的分析数据会上传到 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 会定期从 /tmp 中移动目录及其包含的 .gz 文件 根据 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 目录解压缩数据以获取 Google Analytics 数据文件

配置属性

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

属性 说明
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。如果超过了为 Analytics 数据文件,消息处理器会停止保存分析数据并写入错误消息 写入其日志文件

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. consumer-type 属性的值设置为 ax axgroup-001 分析群组:

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