监控:用户分析

目的

UA应在用户级别(而不是请求级别,如普通监视)提供有关GeoNode资源使用情况的信息。

请求

  1. GeoNode上每天的唯一会话总数(不包括OWS请求)。这提供了河段的基本视图。

    • 来自所有类型的所有会话(OWS和非OWS)的请求

      GET /monitoring/api/metric_data/request.users/?last=(x*86400)&interval=86400&group_by=label

    • 与OWS无关

      GET /monitoring/api/metric_data/request.users/? last=(x*86400)&interval=86400&group_by=label&event_type=other

    • 仅与OWS相关

      GET /monitoring/api/metric_data/request.users/? last=(x*86400)&interval=86400&group_by=label&event_type=OWS:ALL

      {
        "data": {
          "input_valid_from": "2018-07-11T15:41:06.419Z",
          "input_valid_to": "2018-07-12T15:41:06.419Z",
          "data": [
            {
              "valid_from": "2018-07-11T15:41:06.419Z",
              "data": [
                {
                  "samples_count": 82,
                  "val": 9,
                  "min": "0.0000",
                  "max": "24.0000",
                  "sum": "82.0000",
                  "metric_count": 16
                }
              ],
              "valid_to": "2018-07-12T15:41:06.419Z"
            }
          ],
          "metric": "request.users",
          "interval": 86400.0,
          "type": "value",
          "axis_label": "Count",
          "label": null
        }
      }
      
  2. 每个URL的唯一会话总数(不包括OWS请求)。让我看看有多少用户访问图层页面或地图页面

    • 获取URL的唯一跟踪ID数

      GET /monitoring/api/metric_data/request.users/? last=(x*86400)&interval=86400&group_by=resource_on_label&resource_type=url&event_type=other

      {
        "data": {
          "input_valid_from": "2018-07-11T15:39:25.126Z",
          "input_valid_to": "2018-07-12T15:39:25.126Z",
          "data": [
            {
              "valid_from": "2018-07-11T15:39:25.126Z",
              "data": [
                {
                  "resource": {
                    "type": "url",
                    "name": "/layers/",
                    "id": 15
                  },
                  "metric_count": 2,
                  "val": 2,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "2.0000",
                  "samples_count": 2
                },
                {
                  "resource": {
                    "type": "url",
                    "name": "/",
                    "id": 16
                  },
                  "metric_count": 2,
                  "val": 2,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "2.0000",
                  "samples_count": 2
                },
                {
                  "resource": {
                    "type": "url",
                    "name": "/documents/",
                    "id": 21
                  },
                  "metric_count": 1,
                  "val": 1,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "1.0000",
                  "samples_count": 1
                }
              ],
              "valid_to": "2018-07-12T15:39:25.126Z"
            }
          ],
          "metric": "request.users",
          "interval": 86400.0,
          "type": "value",
          "axis_label": "Count",
          "label": null
        }
      }
      
  3. 每个EVENT_TYPE的唯一会话总数:例如,资源页面的唯一访问总数(独立于资源类型和ID)

    • 要获取请求数,请执行以下操作

      GET /monitoring/api/metric_data/request.users/? last=86400&interval=86400&group_by=event_type

    • 要获取唯一跟踪ID的数量,请执行以下操作

      GET /monitoring/api/metric_data/request.users/? last=86400&interval=86400&group_by=event_type_on_label

    • 要获取给定资源类型上每个EVENT_TYPE的唯一跟踪ID数,请执行以下操作

      GET /monitoring/api/metric_data/request.users/? last=86400&interval=86400&group_by=event_type_on_label&resource_type=url

      {
        "data": {
          "input_valid_from": "2018-07-11T17:54:41.467Z",
          "input_valid_to": "2018-07-12T17:54:41.467Z",
          "data": [
            {
              "valid_from": "2018-07-11T17:54:41.467Z",
              "data": [
                {
                  "samples_count": 5,
                  "event_type": "all",
                  "val": 2,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "5.0000",
                  "metric_count": 5
                },
                {
                  "samples_count": 5,
                  "event_type": "other",
                  "val": 2,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "5.0000",
                  "metric_count": 5
                },
                {
                  "samples_count": 5,
                  "event_type": "view",
                  "val": 2,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "5.0000",
                  "metric_count": 5
                }
              ],
              "valid_to": "2018-07-12T17:54:41.467Z"
            }
          ],
          "metric": "request.users",
          "interval": 86400.0,
          "type": "value",
          "axis_label": "Count",
          "label": null
        }
      }
      
    • 要获取特定资源类型上每个事件类型的唯一用户数,请执行以下操作

      GET /monitoring/api/metric_data/request.users/? last=86400&interval=86400&group_by=event_type_on_user&resource_type=url

      {
        "data": {
          "input_valid_from": "2018-07-11T17:54:41.467Z",
          "input_valid_to": "2018-07-12T17:54:41.467Z",
          "data": [
            {
              "valid_from": "2018-07-11T17:54:41.467Z",
              "data": [
                {
                  "samples_count": 5,
                  "event_type": "all",
                  "val": 2,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "5.0000",
                  "metric_count": 5
                },
                {
                  "samples_count": 5,
                  "event_type": "other",
                  "val": 1,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "5.0000",
                  "metric_count": 5
                },
                {
                  "samples_count": 5,
                  "event_type": "view",
                  "val": 1,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "5.0000",
                  "metric_count": 5
                }
              ],
              "valid_to": "2018-07-12T17:54:41.467Z"
            }
          ],
          "metric": "request.users",
          "interval": 86400.0,
          "type": "value",
          "axis_label": "Count",
          "label": null
        }
      }
      
  4. 每个EVENT_TYPE和单个资源的唯一会话总数:让我看看这一天访问最多的地图页面是什么,或者下载最多的文档是什么,请求最多的OWS层是什么,等等。

    • 访问次数最多的资源列表 url 类型

      GET /monitoring/api/metric_data/request.users/? last=86400&interval=86400&group_by=resource_on_label&resource_type=url

    • 每个资源的唯一跟踪ID列表(可以使用以下命令缩小到特定资源类型 resource_type 值)。

      GET /monitoring/api/metric_data/request.users/? last=86400&interval=86400&group_by=resource_on_label

      {
        "data": {
          "input_valid_from": "2018-07-11T17:56:49.381Z",
          "input_valid_to": "2018-07-12T17:56:49.381Z",
          "data": [
            {
              "valid_from": "2018-07-11T17:56:49.381Z",
              "data": [
                {
                  "resource": {
                    "type": "",
                    "name": "",
                    "id": 1
                  },
                  "metric_count": 16,
                  "val": 9,
                  "min": "0.0000",
                  "max": "24.0000",
                  "sum": "82.0000",
                  "samples_count": 82
                },
                {
                  "resource": {
                    "type": "layer",
                    "name": "geonode:ne_50m_admin_0_countries_lakes",
                    "id": 2
                  },
                  "metric_count": 4,
                  "val": 3,
                  "min": "0.0000",
                  "max": "2.0000",
                  "sum": "3.0000",
                  "samples_count": 3
                },
                {
                  "resource": {
                    "type": "layer",
                    "name": "geonode:world_iso2",
                    "id": 12
                  },
                  "metric_count": 4,
                  "val": 2,
                  "min": "0.0000",
                  "max": "5.0000",
                  "sum": "8.0000",
                  "samples_count": 8
                },
                {
                  "resource": {
                    "type": "url",
                    "name": "/layers/",
                    "id": 15
                  },
                  "metric_count": 2,
                  "val": 2,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "2.0000",
                  "samples_count": 2
                },
                {
                  "resource": {
                    "type": "url",
                    "name": "/",
                    "id": 16
                  },
                  "metric_count": 2,
                  "val": 2,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "2.0000",
                  "samples_count": 2
                },
                {
                  "resource": {
                    "type": "url",
                    "name": "/documents/",
                    "id": 21
                  },
                  "metric_count": 1,
                  "val": 1,
                  "min": "1.0000",
                  "max": "1.0000",
                  "sum": "1.0000",
                  "samples_count": 1
                },
                {
                  "resource": {
                    "type": "document",
                    "name": "GeoServer Configuration.pdf",
                    "id": 22
                  },
                  "metric_count": 1,
                  "val": 1,
                  "min": "5.0000",
                  "max": "5.0000",
                  "sum": "5.0000",
                  "samples_count": 5
                }
              ],
              "valid_to": "2018-07-12T17:56:49.381Z"
            }
          ],
          "metric": "request.users",
          "interval": 86400.0,
          "type": "value",
          "axis_label": "Count",
          "label": null
        }
      }
      
  5. 每个event_type和单个资源的唯一访问者(用户)总数:让我看看这一天有多少用户访问了地图页面,或者有多少用户下载了某个资源等。

  • 给定EVENT_TYPE一年内的唯一访问者(用户数)数:

    GET /monitoring/api/metric_data/request.users/ ?valid_from=2019-01-01+00:00:00&valid_to=2019-12-31+23:59:59 &interval=31536000&event_type=upload&group_by=user

  • 给定时间间隔内给定resource_type的唯一访问者(用户数)数。

    GET /monitoring/api/metric_data/request.users/ ?valid_from=2019-01-01+00:00:00&valid_to=2019-12-31+23:59:59 &interval=31536000&resource_type=layer&group_by=user

响应应如下所示:

{
  "data": {
    "input_valid_from": "2019-01-01T00:00:00Z",
    "input_valid_to": "2019-12-31T23:59:59Z",
    "data": [
      {
        "valid_from": "2019-01-01T00:00:00Z",
        "data": [
          {
            "samples_count": 3,
            "val": 2,
            "min": "1.0000",
            "max": "2.0000",
            "sum": "3.0000",
            "metric_count": 2
          }
        ],
        "valid_to": "2020-01-01T00:00:00Z"
      }
    ],
    "metric": "request.users",
    "interval": 31536000,
    "type": "value",
    "axis_label": "Count",
    "label": null
  }
}
  1. 给定用户的唯一跟踪ID/会话总数。

  • 匿名用户的会话计数:

    GET /monitoring/api/metric_data/request.users/ ?valid_from=2019-01-01+00:00:00&valid_to=2019-12-31+23:59:59 &interval=31536000&group_by=label&user=AnonymousUser

    {
      "data": {
        "input_valid_from": "2019-01-01T00:00:00Z",
        "input_valid_to": "2019-12-31T23:59:59Z",
        "data": [
          {
            "valid_from": "2019-01-01T00:00:00Z",
            "data": [
              {
                "samples_count": 5,
                "val": 5,
                "min": "1.0000",
                "max": "1.0000",
                "sum": "5.0000",
                "metric_count": 5
              }
            ],
            "valid_to": "2020-01-01T00:00:00Z"
          }
        ],
        "metric": "request.users",
        "interval": 31536000,
        "type": "value",
        "axis_label": "Count",
        "label": null
      }
    }
    
  1. 每个用户的唯一跟踪ID/会话总数。

  • 每个用户的会话计数:

    GET /monitoring/api/metric_data/request.users/ ?valid_from=2019-01-01+00:00:00&valid_to=2019-12-31+23:59:59 &interval=31536000&group_by=user_on_label

    {
      "data": {
        "input_valid_from": "2019-01-01T00:00:00Z",
        "input_valid_to": "2019-12-31T23:59:59Z",
        "data": [
          {
            "valid_from": "2019-01-01T00:00:00Z",
            "data": [
              {
                "samples_count": 5,
                "val": 5,
                "min": "1.0000",
                "max": "1.0000",
                "sum": "5.0000",
                "user": "AnonymousUser",
                "metric_count": 5
              },
              {
                "samples_count": 16,
                "val": 3,
                "min": "1.0000",
                "max": "2.0000",
                "sum": "16.0000",
                "user": "admin",
                "metric_count": 14
              },
              {
                "samples_count": 4,
                "val": 1,
                "min": "1.0000",
                "max": "1.0000",
                "sum": "4.0000",
                "user": "user1_username",
                "metric_count": 4
              }
            ],
            "valid_to": "2020-01-01T00:00:00Z"
          }
        ],
        "metric": "request.users",
        "interval": 31536000,
        "type": "value",
        "axis_label": "Count",
        "label": null
      }
    }
    
  • 对每个对层执行某些操作的用户的会话计数:

    GET /monitoring/api/metric_data/request.users/ ?valid_from=2019-01-01+00:00:00&valid_to=2019-12-31+23:59:59 &interval=31536000&resource_type=layer&group_by=user_on_label

    {
      "data": {
        "input_valid_from": "2019-01-01T00:00:00Z",
        "input_valid_to": "2019-12-31T23:59:59Z",
        "data": [
          {
            "valid_from": "2019-01-01T00:00:00Z",
            "data": [
              {
                "samples_count": 2,
                "val": 1,
                "min": "2.0000",
                "max": "2.0000",
                "sum": "2.0000",
                "user": "admin",
                "metric_count": 1
              },
              {
                "samples_count": 1,
                "val": 1,
                "min": "1.0000",
                "max": "1.0000",
                "sum": "1.0000",
                "user": "user1_username",
                "metric_count": 1
              }
            ],
            "valid_to": "2020-01-01T00:00:00Z"
          }
        ],
        "metric": "request.users",
        "interval": 31536000,
        "type": "value",
        "axis_label": "Count",
        "label": null
      }
    }
    
  1. 每个受监视资源的唯一用户总数。

GET /monitoring/api/metric_data/request.users/ ?last=31536000&interval=31536000&group_by=resource_on_user

{
  "data": {
    "input_valid_from": "2018-09-10T14:15:39.454Z",
    "input_valid_to": "2019-09-10T14:15:39.454Z",
    "data": [
      {
        "valid_from": "2018-09-10T14:15:39.454Z",
        "data": [
          {
            "resource": {
              "href": "/",
              "type": "url",
              "name": "/",
              "id": 1
            },
            "metric_count": 36,
            "val": 4,
            "max": "2.0000",
            "sum": "35.0000",
            "min": "0.0000",
            "samples_count": 35
          },
          {
            "resource": {
              "href": "/maps/",
              "type": "url",
              "name": "/maps/",
              "id": 3
            },
            "metric_count": 3,
            "val": 2,
            "max": "1.0000",
            "sum": "3.0000",
            "min": "1.0000",
            "samples_count": 3
          },
          {
            "resource": {
              "href": "",
              "type": "layer",
              "name": "geonode:railways",
              "id": 4
            },
            "metric_count": 5,
            "val": 2,
            "max": "2.0000",
            "sum": "3.0000",
            "min": "0.0000",
            "samples_count": 3
          },
          {
            "resource": {
              "href": "/layers/",
              "type": "url",
              "name": "/layers/",
              "id": 2
            },
            "metric_count": 4,
            "val": 1,
            "max": "1.0000",
            "sum": "4.0000",
            "min": "1.0000",
            "samples_count": 4
          },
          {
            "resource": {
              "href": "/documents/2",
              "type": "document",
              "name": "test_doc_1.txt",
              "id": 5
            },
            "metric_count": 2,
            "val": 1,
            "max": "2.0000",
            "sum": "4.0000",
            "min": "2.0000",
            "samples_count": 4
          },
          {
            "resource": {
              "href": "/maps/3",
              "type": "map",
              "name": "test_map",
              "id": 6
            },
            "metric_count": 1,
            "val": 1,
            "max": "1.0000",
            "sum": "1.0000",
            "min": "1.0000",
            "samples_count": 1
          },
          {
            "resource": {
              "href": "",
              "type": "layer",
              "name": "geonode:waterways",
              "id": 7
            },
            "metric_count": 2,
            "val": 1,
            "max": "2.0000",
            "sum": "2.0000",
            "min": "0.0000",
            "samples_count": 2
          }
        ],
        "valid_to": "2019-09-10T14:15:39.454Z"
      }
    ],
    "metric": "request.users",
    "interval": 31536000,
    "type": "value",
    "axis_label": "Count",
    "label": null
  }
}
  1. 给定时间范围内监视的资源总数。

GET /monitoring/api/metric_data/request.users/ ?last=31536000&interval=31536000&group_by=count_on_resource

{
  "data": {
    "input_valid_from": "2018-09-10T14:20:27.335Z",
    "input_valid_to": "2019-09-10T14:20:27.335Z",
    "data": [
      {
        "valid_from": "2018-09-10T14:20:27.335Z",
        "data": [
          {
            "samples_count": 52,
            "val": 7,
            "min": "0.0000",
            "max": "2.0000",
            "sum": "52.0000",
            "metric_count": 53
          }
        ],
        "valid_to": "2019-09-10T14:20:27.335Z"
      }
    ],
    "metric": "request.users",
    "interval": 31536000,
    "type": "value",
    "axis_label": "Count",
    "label": null
  }
}