全部产品
Search
文档中心

Cloud Monitor:(Direkomendasikan) Melaporkan data pemantauan menggunakan SDK untuk Java

更新时间:Jul 02, 2025

Topik ini menjelaskan cara melaporkan data pemantauan menggunakan SDK untuk Java.

SDK untuk Java memungkinkan Anda melaporkan data pemantauan dengan salah satu metode berikut:
  • Gunakan SDK untuk Java untuk langsung melaporkan data pemantauan.
  • Gunakan SDK untuk Java untuk mengumpulkan data secara lokal dan kemudian melaporkan data agregat.

    Periode agregasi harus 60 detik atau 300 detik.

Instal SDK untuk Java

Anda dapat menginstal SDK untuk Java dengan menambahkan dependensi Maven berikut:
<dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>aliyun-cms</artifactId>
            <version>0.2.4</version>
</dependency>

Kode contoh

Berikut adalah kode contoh yang menunjukkan cara melaporkan data pemantauan menggunakan SDK untuk Java:
  • Melaporkan data mentah
    CMSClientInit.groupId = 101L;// Tentukan ID grup aplikasi umum.
            CMSClient cmsClient = new CMSClient(endpoint, accKey, secret);// Inisialisasi klien.
            CustomMetricUploadRequest request = CustomMetricUploadRequest.builder()
                    .append(CustomMetric.builder()
                            .setMetricName("testMetric")// Tentukan nama dari data deret waktu.
                            .setGroupId(102L)// Tentukan ID grup aplikasi.
                            .setTime(new Date())
                            .setType(CustomMetric.TYPE_VALUE)// Atur tipe ke data mentah.
                            .appendValue(MetricAttribute.VALUE, 1f)// Tambahkan data mentah. Atur kunci ke MetricAttribute.VALUE.
                            .appendDimension("key", "value")// Tambahkan dimensi.
                            .appendDimension("ip", "127.0.0.1")// Tambahkan dimensi.
                            .build())
                    .build();
            CustomMetricUploadResponse response = cmsClient.putCustomMetric(request);// Laporkan data.
            System.out.println(JSONObject.toJSONString(response));
  • Melaporkan data agregat
    CMSClientInit.groupId = 101L;
            CMSClient cmsClient = new CMSClient(endpoint, accKey, secret);
            CustomMetricUploadRequest request = CustomMetricUploadRequest.builder()
                    .append(CustomMetric.builder()
                            .setMetricName("customTest")
                            .setTime(new Date())
                            .setType(CustomMetric.TYPE_AGG)// Atur tipe ke data agregat.
                            .setPeriod(CustomMetric.PERIOD_1M)// Atur periode agregasi menjadi 1 menit.
                            .appendDimension("test", "testValue")// Tambahkan dimensi.
                            .appendDimension("dimension", "dimensionValue")// Tambahkan dimensi.
                            .appendValue(MetricAttribute.SUM, 100)// Tambahkan nilai total.
                            .appendValue(MetricAttribute.MAX, 20)// Tambahkan nilai maksimum.
                            .appendValue(MetricAttribute.MIN, 0.1)// Tambahkan nilai minimum.
                            .appendValue(MetricAttribute.COUNT, 20)// Tambahkan jumlah.
                            .appendValue(MetricAttribute.AVG, 5)// Tambahkan nilai rata-rata.
                            .appendValue(MetricAttribute.LAST, 10)// Tambahkan nilai sampel terakhir dari periode agregasi.
                            .appendValue(MetricAttribute.P50, 10)// Tambahkan nilai persentil ke-50.
                            .appendValue(MetricAttribute.P90, 17)// Tambahkan nilai persentil ke-90.
                            .appendValue(MetricAttribute.P99, 19)// Tambahkan nilai persentil ke-99.
                            .build())
                    .build();
            CustomMetricUploadResponse response = cmsClient.putCustomMetric(request);
            System.out.println(JSONObject.toJSONString(response));
Catatan Untuk informasi lebih lanjut tentang titik akhir Cloud Monitor di berbagai wilayah, lihat Lampiran 3: Titik Akhir untuk Melaporkan Data Pemantauan.

Contoh respons

Berikut adalah kode yang menunjukkan contoh respons yang dikembalikan saat Anda melaporkan data pemantauan menggunakan SDK untuk Java:
{
    "Message": "success",
    "RequestId": "E25EE651-9C97-4EFD-AF22-A753B674E8D4",
    "Code": "200"
}

Kode status HTTP 200 menunjukkan keberhasilan.

Melaporkan data agregat dari beberapa periode agregasi

Gunakan SDK untuk Java untuk mengumpulkan data secara lokal dan kemudian melaporkan data agregat.
Tipe dataDeskripsiNilai agregatPenggunaan memori
valueTipe nilai umum.Semua properti kecuali LastValueSekitar 4 KB
gaugeNilai sampel.LastValue4Byte
meterJumlah dan laju.Sum dan SumPerSecond50Byte
counterHitunganSampleCount10Byte
timerWaktu komputasi.SampleCount, CountPerSecond, Average, Maximum, Minimum, dan P10 hingga P99Sekitar 4 KB
histogramDistribusi.SampleCount, Average, Maximum, Minimum, dan P10 hingga P99Sekitar 4 KB
Catatan Penggunaan memori menunjukkan memori yang digunakan oleh satu deret waktu dalam satu periode agregasi.
Kode contoh:
// Inisialisasi data.
        CMSClientInit.groupId = 0L;
        CMSClient cmsClient = new CMSClient(accKey, secret, endpoint);// Buat klien.
        CMSMetricRegistryBuilder builder = new CMSMetricRegistryBuilder();
        builder.setCmsClient(cmsClient);
// Buat registri yang digunakan untuk melaporkan data dari dua periode agregasi.
final MetricRegistry registry = builder.build();
// Sebagai alternatif, buat registri yang digunakan untuk melaporkan data dari satu periode agregasi selama 1 menit.
final MetricRegistry registry = builder.build(RecordLevel. _60S);
// Gunakan tipe value.
ValueWrapper value = registry.value(MetricName.build("value"));
value.update(6.5);
// Gunakan tipe meter.
MeterWrapper meter = registry.meter(MetricName.build("meter"));
meter.update(7.2);
// Gunakan tipe counter.
CounterWrapper counter = registry.counter(MetricName.build("counter"));
counter.inc(20);
counter.dec(5);
// Gunakan tipe timer.
TimerWrapper timer = registry.timer(MetricName.build("timer"));
timer.update(30, TimeUnit.MILLISECONDS);
// Gunakan tipe histogram.
HistogramWrapper histogram = registry.histogram(MetricName.build("histogram"));
histogram.update(20);
// Gunakan tipe gauge.
final List list = new ArrayList();
registry.gauge(MetricName.build("gauge"), new Gauge() {
                        @Override
                        public Number getValue() {
                            return list.size();
                        }
                    });