當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python ArcGIS ReportManager.create用法及代碼示例


本文簡要介紹 python 語言中 arcgis.gis.server.ReportManager.create 的用法。

用法:

create(reportname, queries, metadata=None, since='LAST_DAY', from_value=None, to_value=None, aggregation_interval=None)

返回:

Report 對象。

創建新的使用情況報告。通過向此操作提交使用報告的 JSON 表示來創建使用報告。有關此方法捆綁的 REST 請求的詳細信息,請參閱CreateUsageReport

Parameter

Description

reportname

必需的字符串。報告的唯一名稱。

queries

要為其生成報告的 Python 字典的必需列表。每個字典有兩個鍵:resourceURIsmetrics

# Usage Example

[{"resourceURIs": ["/services/Folder_name/",
                   "Forest_loss.FeatureServer"],
  "metrics": ["RequestCount,RequestsFailed"]}]

每個鍵的對應值是一個字符串列表,分別指定要為其收集指標的資源或要收集的指標。

  • resourceURIs -

    逗號分隔的列表,指定要為其收集指標的服務或文件夾,格式如下:

    • services/ - 整個站點

    • services/Folder/ - 站點內的文件夾。報告該文件夾和任何子文件夾內所有服務聚合的指標。

    • services/Folder/ServiceName.ServiceType - 指定文件夾中的服務。

      • services/Folder_name/Map_bv_999.MapServer

    • service - 如果在根文件夾中

      • Map_bv_999.MapServer

  • metrics -

    以逗號分隔的字符串的具體措施來收集。

    • RequestCount — 收到的請求數

    • RequestsFailed — 失敗的請求數

    • RequestsTimedOut — 超時的請求數

    • RequestMaxResponseTime — 最大響應時間

    • RequestAvgResponseTime — 平均響應時間

    • ServiceActiveInstances — 為指定服務以 1 分鍾間隔采樣的最大活動(運行)服務實例數

    • ServiceRunningInstancesMax — 活動(運行)服務實例的最大數量,以指定服務的 one-minute 間隔采樣。如果您包含此指標,則它必須是報告中包含的唯一指標。

metadata

可選字符串。表示使用情況報告的表示層數據的任何 JSON 對象,例如報告標題、顏色、line-styles 等。還用於表示使用管理員目錄創建的報告在 ArcGIS 服務器管理器中的可見性。要使管理員目錄中創建的任何報告對 Manager 可見,請在元數據 JSON 對象中包含 “managerReport”:true。如果未設置此值(默認),則報告在 Manager 中不可見。此行為可以擴展到任何想要與管理員目錄交互的客戶端。任何用戶創建的值都需要由客戶端處理。

since

可選字符串。報告的持續時間。支持的值為:LAST_DAY、LAST_WEEK、LAST_MONTH、LAST_YEAR、CUSTOM

  • LAST_DAY 表示跨越前 24 小時的時間範圍。這是默認值。

  • LAST_WEEK 表示跨越前 7 天的時間範圍。

  • LAST_MONTH 表示跨越前 30 天的時間範圍。

  • LAST_YEAR 表示跨越前 365 天的時間範圍。

  • CUSTOM 表示使用 from 和 to 參數指定的時間範圍。

from_value

可選整數。僅當 since 為 CUSTOM 時有效。報告開始期間的時間戳,以毫秒為單位(自 1970 年 1 月 1 日 00:00:00 GMT,Unix 紀元開始)。

# usage Example:

import datetime as dt

>>> sept1_2020 = int(dt.datetime(2020, 9, 1).timestamp()) * 1000
    sept1_2020

    1598943600000

to_value

可選整數。僅當 since 為 CUSTOM 時有效。報告結束期間的時間戳(自 1970 年 1 月 1 日 00:00:00 GMT,Unix 紀元開始)。

# usage Example:

import datetime as dt

now = int(dt.datetime.now().timestamp()) * 1000

aggregation_interval

可選字符串。聚合間隔(以分鍾為單位)。聚合並返回使用指定聚合間隔聚合的時間片的服務器指標。使用since參數指定的報告時間範圍(當since為自定義時,還有from_value和to_value)被分成多個片,每個片覆蓋一個聚合間隔。然後,聚合每個時間片的服務器指標,並作為報告數據中的數據點返回。當未指定 aggregation_interval 時,將使用以下默認值:

  • LAST_DAY: 30 minutes

  • LAST_WEEK: 4 hours

  • LAST_MONTH: 24 hours

  • LAST_YEAR: 1 week

  • CUSTOM: 30 minutes up to 1 day, 4 hours up to 1 week, 1

day up to 30 days, and 1 week for longer periods.

如果使用報告設置中指定的時間間隔大於聚合時間間隔,則使用該時間間隔。

例子:

# USAGE EXAMPLE:

import datetime as dt
from arcgis.gis import GIS

>>> gis = GIS(profile="your_ent_profile", verify_cert=False)

>>> gis_servers = gis.admin.servers.list()

>>> gis_server = gis_servers[1]

>>> now = int(dt.datetime.now().timestamp()) * 1000
>>> sept1_2020 = int(dt.datetime(2020, 9, 1).timestamp()) * 1000

>>> query_obj = [{"resourceURIs": ["services/Map_bv_999.MapServer"],
                  "metrics": ["RequestCount"]}]

>>> r = gis_server.usage.create(reportname="SampleReport",
                                queries=query_obj,
                                metadata="This could be any String or JSON Object.",
                                since="CUSTOM",
                                from_value=sept1_2020,
                                to_value=now)
>>> r

    <Report at https://server_url:6443/arcgis/admin/usagereports/SampleReport>

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 arcgis.gis.server.ReportManager.create。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。