___

___ ____ ______ _____________ _____ ___________ ___ ___ ___ ________ ___ _________ ________ ______________ ___ ________ ___ __ _________ ______ ______ __ _______ ___ ______ _______ ____ _ ______ ____ ___________ __ ________ ____ ______

___ ______ ____________ __ ___ _____________ _________ ____ ___ _____ _____ ________ ____ ___ ___ _______ ____ __ ___ __ _________ ______ ______ __ _______ ___ ______ _______ ____ _ ______ ____ ___________ __ ________ ____ _______ ____ __ _ ____ ________ ___________ __ ___ __________ ________

注: __ _______ ___ ____ ___ _____________ _________ _____ ______ _____________ __________ _____ __ ___ ___ _________ __ ___ ___ _____________ __ ___________ ____ ___ ______ ____________ __ _____________ _____ ___ ___ _______ _______ ____ ___ ____ _____ _______ __ _____ _ ___ ________ __ _____ _____ ___ _______ ___________

___ ___ ___ ___ _________ _______ _______ __ ___ ______ ______ ______ ___ ____ _________ _____ __ ___ __ ___ ________ ________

  • ____________________ ____________ ____ ______ _______ ___ __________ ___ ___________ ___ ___ _____ ___________ _____ ___ _______ __________ __ ___ _____ ___ ______ _____ __ _ ____ __ ____ __ ____ ___________ ________ _____ ___ _ ___________ _______ ____ ______ ________ __ ____ _________ __________ __ ___ _____ _______ ___ _______________________________ ___ ____ ___________ _____ ___ ___________ _______ ___ ___ ___ ___ ______ ________ ______ __ ___ ________ ____ __ ______ ___ _____ _____ __ ___ ___ ____ _________ ____

  • _____________________ _____ ______ ____ ___________ _______ ____________ _ ___________ ________ __ ______ _ ________ _____ ____ ______ ____ _______ _ _________ ________ ____ ___ __ ___ __ ________________________ ____ ____ ___ ____ ___ ____ ______ ____ _______ ___

  • __________________________ _____ ______ ____ ___________ _______ ____________ _ ___________ ________ __ ______ _ ________ __________ _______ ____ ______ ____ _______ _ _________ ________ ____ ___ __ ___ __ ________________________ ____ ____ ___ ____ ___ ____ ______ __ ____ _______ ___

___ ______ ________ _________ __ ___ ______ _______ __ ____ __ ____ ____ __ ______ _____________ ______ __ ________ ___ _________ ________

  • ______________________________ ____ ____ ___ _____ ____ _____ __ _________ ___ ___ ___________________________ _______ __ ______ ___ _________ _________

  • _____________________________________ ____ ____ ___ _____ ____ ______ __ _________ ___ ___ ___________________________ _______ __ ______ ___ _________ _________ ____ ________ ____ _________ __ ____ ________ ____ ______ __ _____ ___ ____ _______ ______ ____ ____ ______ ______ _______ ____ ____ _______ __ _____

________

インテグレーションを設定すると、これらの機能にアクセスできるようになります:

____________

このインテグレーションを導入するには、以下の手順に従ってください:

  1. Splunk Distribution of the OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします:

  2. [設定] セクションの説明に従ってインテグレーションを設定します。

  3. Splunk Distribution of OpenTelemetry Collector を再起動します。

_____________

Smart Agent モニターとCollector のインテグレーションを使用するには、以下の手順に従います:

  1. Smart Agent レシーバーを設定ファイルに含めます。

  2. レシーバーセクションおよびパイプラインセクションの両方で、Collector 構成にモニタータイプを追加します。

_______

__ ________ ____ ____________ ___ ___ _________ __ ____ _________ ______________

receivers:
  smartagent/jmx:
    type: jmx
    ...  # Additional config

_____ ___ ___ _______ __ ___ ___________________________________ _______ __ ____ _____________ _____

service:
  pipelines:
    metrics:
      receivers: [smartagent/jmx]

_____________ ________

___ _________ _____ _____ ___ _____________ _______ ___ ____ ____________

______

________

____

___________

____

__

______

____ ____ __ ______ __ __ ______________ __ ____ _______ ___ _

_________ _____

____

__

_______

____ ____ __ ______ __ __ ______________ __ ____ _______ ___ _

_________ _____ _________ __

__________

__

______

___ _______ ___ ___ ___ ___ _________ _________ __ _____ __ ____

__ ______ __ ____ ______ ____ ____ ___ ____ _____ _ ________ ___ ___ _________ ___________________________________________________ __ ___________ ____ ___ ____ ____ ____ __ _______ ___ _____ ________ ___ _______ ___ ____ __ __________ ___ _____ ________ ___ ______ __ __________________________________

____________

___

______

_ _______ ______ ______ ____ _________ ____ ______ ____ ___

_______ ___ ___ _________ ___ _______ ___ ___ ____ ___________ __ ___ __ _____ ____ _______ ___ ___ ___ ___ ______ ______ __ _ ________ ____ ___ _____ __ __ ____ ____ _________________________________ ___ ____ ___________ __ _____ ___ _______ _______ ___ ______________________________________________________________________________________________________ ___ ___ ___ ___ __ ________ __ ____ __ _____ ___ _ _____ __________

________

__

______

________ ___ ___ _______________ __ ___________

________

__

______

________ ___ ___ _______________ __ ___________

____________

__

______

___ ___ _____ ____ __ ________ __ ______ ______________ __

_________ __ ___ ______ ____

________________

__

______

___ ___ _____ ____ ________ __ _________

____________

__

______

___ ___ _____ _____ _________ ____

______________

__

______

___ _______ _____ ____ __ ___ ___ _______ __ _________

__________________

__

______

___ _____ _____ ____ ________ __ _________

_________________

__

______

_________ ___ ______ ________ ___ ___ __ ___________ ____ ____

_________ ___________ _______________ ___ ______________ ____ _____ _________________ ______ ____ ___________ ________________ ______________ ___ ___________ ___ _______________ ___ ___ ______________

_____

__

______

___ _____ __ ________ __ _______ ________________

___ _________ __ __ _______ ______ ______ ____ __________ ____ __ ___ ____ _________ __ ___ _________ ________ ______ ________

// Query the JMX endpoint for a single MBean.
ss = util.queryJMX("org.apache.cassandra.db:type=StorageService").first()

// Copied and modified from https://github.com/apache/cassandra
def parseFileSize(String value) {
    if (!value.matches("\\d+(\\.\\d+)? (GiB|KiB|MiB|TiB|bytes)")) {
        throw new IllegalArgumentException(
            String.format("value %s is not a valid human-readable file size", value));
    }
    if (value.endsWith(" TiB")) {
        return Math.round(Double.valueOf(value.replace(" TiB", "")) * 1e12);
    }
    else if (value.endsWith(" GiB")) {
        return Math.round(Double.valueOf(value.replace(" GiB", "")) * 1e9);
    }
    else if (value.endsWith(" KiB")) {
        return Math.round(Double.valueOf(value.replace(" KiB", "")) * 1e3);
    }
    else if (value.endsWith(" MiB")) {
        return Math.round(Double.valueOf(value.replace(" MiB", "")) * 1e6);
    }
    else if (value.endsWith(" bytes")) {
        return Math.round(Double.valueOf(value.replace(" bytes", "")));
    }
    else {
        throw new IllegalStateException(String.format("FileUtils.parseFileSize() reached an illegal state parsing %s", value));
    }
}

localEndpoint = ss.HostIdToEndpoint.get(ss.LocalHostId)
dims = [host_id: ss.LocalHostId, cluster_name: ss.ClusterName]

output.sendDatapoints([
    // Equivalent of "Up/Down" in the `nodetool status` output.
    // 1 = Live; 0 = Dead; -1 = Unknown
    util.makeGauge(
        "cassandra.status",
        ss.LiveNodes.contains(localEndpoint) ? 1 : (ss.DeadNodes.contains(localEndpoint) ? 0 : -1),
        dims),

    util.makeGauge(
        "cassandra.state",
        ss.JoiningNodes.contains(localEndpoint) ? 3 : (ss.LeavingNodes.contains(localEndpoint) ? 2 : 1),
        dims),

    util.makeGauge(
        "cassandra.load",
        parseFileSize(ss.LoadString),
        dims),

    util.makeGauge(
        "cassandra.ownership",
        ss.Ownership.get(InetAddress.getByName(localEndpoint)),
        dims)
    ])

____ ____ ____ ____ ______ __ _________ ______ ______ _____ __ __ _______ _ __________ ___ ________ __ ________ _______ ______ ____ ____ ___________ ___ _______ ________ _____

_______

_____ ___ __ _______ _________ ___ ____ ____________

_______________

__ ___ ___ _ ______ _____________ _____ ________ ___ ___ ___ ____ __ ___ ____ ____ __ ______ _____________ ______ ___ ___ ___ ____ __ ___ _________ _____

_________ __ ______ _____________ _____ _________

_________ __ ___________ _________ ___ ____ _____ _____

  • ___ _ ________ ___ ___ _______ _______ _________ _______ __ ______ ________

  • ____ ___ ______ ______________ ____ _____ _____ _______ __ ___________ ____ __________ _________ ___ ______ _________ __________ __ _____ ___ ____ _______