LogicMonitor SDK

最終更新日: 20 年 2023 月 XNUMX 日

LogicMonitorには、RESTAPIのv2で使用できるPythonおよびGoSDKがあります。 これらのSDKは、LogicMonitorのREST APIのv2とのより効率的で便利な相互作用を可能にし、APIベースの統合とワークフロープロセスを構築するのに役立つ場合があります。

注:

  • Python SDK の場合、REQUEST パラメータにはキャメルケースまたはアンダースコアを含めることができます。
  • パラメーターが本文内にカプセル化されている場合、アンダースコアとキャメルケースの両方がサポートされます。
  • パラメーターが本文内にカプセル化されており、ユーザーが生の JSON を REQUEST パラメーターとして渡している場合は、キャメルケースのみがサポートされます。 ただし、RESPONSE パラメータには常にアンダースコアが含まれます。 たとえば、REQUEST パラメータで testLocation または test_location を使用できます。 ただし、RESPONSE パラメータは常に test_location になります。
  • フィールドパラメータはキャメルケースのみをサポートします。

SDKのダウンロード

Python SDK の圧縮 tar ファイルを直接ダウンロードできます。 ここ およびGoSDK ここ。 これらのSDKは、LogicMonitorのGitHubからも入手できます。

SDKの使用

PythonおよびGoSDKは、SwaggerCodegenを使用して自動生成されます。 これらのSDKの追加の例を含む詳細なドキュメントが利用可能です ここ。 以下は、GoおよびPythonSDKの使用を開始するのに役立つ例です。

例1:PythonSDKを介してすべてのアラートを取得する

from __future__ import print_function
import time
import logicmonitor_sdk
from logicmonitor_sdk.rest import ApiException
from pprint import pprint


# Configure API key authorization: LMv1
configuration = logicmonitor_sdk.Configuration()
configuration.company = 'COMPANY_NAME'
configuration.access_id = 'API_ACCESS_ID'
configuration.access_key = 'API_ACCESS_KEY'

# create an instance of the API class
api_instance = logicmonitor_sdk.LMApi(logicmonitor_sdk.ApiClient(configuration))

try:
    # get alert list
    api_response = api_instance.get_alert_list()
    pprint(api_response)
except ApiException as e:
    print("Exception when calling LMApi->getAlertList: %s\n" % e)

例2:PythonSDKを介してデバイスを追加する

from __future__ import print_function
import time
import logicmonitor_sdk
from logicmonitor_sdk.rest import ApiException
from pprint import pprint


# Configure API key authorization: LMv1
configuration = logicmonitor_sdk.Configuration()
configuration.company = 'COMPANY_NAME'
configuration.access_id = 'API_ACCESS_ID'
configuration.access_key = 'API_ACCESS_KEY'

# create an instance of the API class
api_instance = logicmonitor_sdk.LMApi(logicmonitor_sdk.ApiClient(configuration))
body = {"name": "8.8.8.8","displayName": "myDevice","preferredCollectorId": 10,"disableAlerting": "true"}

try:
    # add device
    api_response = api_instance.add_device(body)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling LMApi->addDevice: %s\n" % e)

例3:GoSDKを介してすべてのアラートを取得する

package main

import (
        "fmt"
        "github.com/logicmonitor/lm-sdk-go/client"
        "github.com/logicmonitor/lm-sdk-go/client/lm"
)

func main() {

        // define the client
        config := client.NewConfig()
        accessID := "API_ACCESS_ID"
        config.SetAccessID(&accessID)
        accessKey := "API_ACCESS_KEY"
        config.SetAccessKey(&accessKey)
        domain := "COMPANY.logicmonitor.com"
        config.SetAccountDomain(&domain)

        lmSdk := client.New(config)

        // prepare params and request
        params := lm.NewGetAlertListParams()
        filter := "acked:false"
        params.SetFilter(&filter)
        resp, err := lmSdk.LM.GetAlertList(params)
        if err != nil {
                fmt.Println(err.Error())
        }

        // parse the alert list
        idList := make([]string, 0)
        for _, alert := range resp.Payload.Items {
                idList = append(idList, alert.ID)
        }
        fmt.Println(idList)

}




フィルタ構文

フィルタ値は、リクエストパラメータフィルタとしてAPIに渡され、API応答から値をフィルタリングするために使用されます。
サポートされている演算子は次のとおりです。– 

  • $ filter :: = $ fieldName $ operator $ valueList
  • $ fieldName :: =文字列
  • $ operator :: =>:| > | <:| <| :| !:| 〜| !〜
  • $ valueList :: = $ value [“ |” $ value] *
  • $ value :: =数値または文字列

ここで、 

  • :完全一致です
  • !:等しくない 
  • 〜含む/部分一致
  • !〜含まれていません
  • >より大きい
  • >:以上 
  • <未満
  • <:以下

1. {{url}} / device / devices?filter = id!〜1、deviceType〜0

この構文は、idフィールドに1がなく、deviceTypeに0が含まれるすべてのデバイスエンティティを返します。

Response -

{ [
       {
           "id": 2,
           "displayName": "198.168.0.1",
           "deviceType": 0
       },
       {
           "id": 28,
           "displayName": "198.2.2.12",
           "deviceType": 0
       },
       {
           "id": 33,
           "displayName": "198.2.2.17",
           "deviceType": 0
       }
]}

ここで、(、)はAND演算子のように機能します。

2. {{url}} / device / devices?filter = id:1

この構文は、idが1に等しいすべてのデバイスエンティティを返します

Response -

{ [
       {
           "id": 1,
           "displayName": "198.168.0.1",
           "deviceType": 0
       }
]}

複数のフィルタ

  • フィルタでのブール型チェックの場合–

trueまたはfalseの文字列をフィルタリングすることで、応答をフィルタリングできます。

文字列は小文字でなければなりません。

 filter = sdted:” true”
またはfilter = sdted:true

  • フィルタでの整数型チェックの場合–

整数値は二重引用符で囲むことはできません。

フィルタ=期間:153

記事上で