Tag dalam Application Real-Time Monitoring Service (ARMS) membantu Anda mengorganisasi dan memantau data, seperti metrik pemantauan aplikasi, jejak, dan log. Topik ini menjelaskan cara menambahkan tag ke aplikasi Anda, menggunakan tag aplikasi untuk memfilter aplikasi dan mengelola izin, serta menggunakan tag instans untuk memfilter data di halaman Application Details dan Grafana View.
Prasyarat
Aplikasi Anda telah terhubung ke Pemantauan Aplikasi. Untuk informasi selengkapnya, lihat Ikhtisar Pemantauan Aplikasi.
Aplikasi Java juga harus memenuhi persyaratan berikut:
-
Untuk aplikasi di kluster kontainer, pastikan komponen ack-onepilot versi v3.0.4 atau lebih baru dan agen ARMS versi v2.7.3.5 atau lebih baru.
-
Untuk aplikasi di lingkungan lain, pastikan versi agen ARMS adalah v2.7.3.5 atau lebih baru. Anda dapat mengunduh agen ARMS terbaru dari tab Agent Release Notes pada halaman di Konsol ARMS.
Jenis tag
Pemantauan Aplikasi menyediakan dua jenis tag: tag aplikasi dan tag instans. Keduanya menggunakan pasangan kunci-nilai. Pilih jenis yang paling sesuai dengan kasus penggunaan Anda.
Tag aplikasi
Tag aplikasi berlaku untuk aplikasi ARMS. Anda dapat melihat atau mengubah tag aplikasi di halaman di Konsol ARMS. Anda dapat menggunakan tag aplikasi untuk tujuan seperti memfilter aplikasi, mengelola izin, dan mengalokasikan biaya.
Tag instans
Setiap instans aplikasi merepresentasikan proses aplikasi yang terhubung ke ARMS dengan nama aplikasi yang sama. Berbeda dengan tag aplikasi, tag instans berlaku untuk masing-masing instans aplikasi, sehingga instans berbeda dari aplikasi yang sama dapat memiliki tag yang berbeda.
Untuk instans aplikasi yang ditemukan secara otomatis di lingkungan Kubernetes, ARMS menambahkan tag instans default berikut:
|
Tag key |
Description |
|
workloadKind |
Jenis workload tempat instans aplikasi berjalan, seperti Deployment. |
|
workloadName |
Nama workload tempat instans aplikasi berjalan. |
|
clusterName |
Nama kluster Kubernetes tempat instans aplikasi berjalan. |
|
namespace |
Namespace Kubernetes tempat instans aplikasi berjalan. |
|
version |
Image tag. Tag instans kustom dapat mengganti nilai ini. |
|
agentVersion |
Versi agen ARMS. |
Selain tag default, Anda dapat menambahkan tag instans kustom. Instans aplikasi juga mewarisi semua tag dari aplikasi induknya. Data pemantauan yang dihasilkan ARMS untuk suatu instans aplikasi mencakup semua tag aplikasi dan instans yang ditetapkan padanya.
Kami menyarankan agar kunci tag instans kustom mengikuti konvensi penamaan Prometheus, artinya kunci tersebut harus sesuai dengan ekspresi reguler ^[a-zA-Z_][a-zA-Z0-9_]*$. Untuk kunci yang tidak sesuai, agen ARMS akan mengganti karakter yang tidak valid dengan underscore (_). Misalnya, 1key:1value menjadi _key:1value.
Contoh:
Seperti yang ditunjukkan pada gambar berikut, aplikasi my-app memiliki dua instans. Data metrik yang dihasilkan ARMS untuk Instans B mencakup tag berikut: {env: Dev, team: Observability, app: my-app, workloadKind: Deployment, workloadName: my-app, clusterName: ClusterA, namespace: nsA, gitVersion: 1.0.1}.
Tambahkan tag instans kustom
Tambahkan tag instans kustom di Kubernetes
Metode 1 (disarankan): Suntikkan tag menggunakan pod labels
Jika aplikasi Anda dideploy di lingkungan Kubernetes tempat agen ARMS diinstal secara otomatis, Anda dapat menambahkan tag instans kustom dengan menggunakan pod labels.
Metode ini cocok untuk aplikasi yang dideploy baik di Container Service for Kubernetes (ACK) maupun di lingkungan Kubernetes umum. Untuk informasi tentang cara menginstal agen ARMS secara otomatis di lingkungan tersebut, lihat Ikhtisar Pemantauan Aplikasi.
Ambil contoh aplikasi yang dideploy di lingkungan ACK:
Di Konsol ACK, buka halaman Deployments atau StatefulSets kluster target Anda. Pilih namespace target, temukan aplikasi target, lalu di kolom Actions, pilih . Di kotak dialog Edit YAML, tambahkan tag kustom Anda dan klik Update. Instans aplikasi akan restart untuk menerapkan tag baru.
'f:readyReplicas': {}
'f:replicas': {}
'f:updatedReplicas': {}
manager: kube-controller-manager
operation: Update
subresource: status
time: '2023-11-16T09:39:32Z'
name: mall-gateway
namespace: arms-apm-demo
resourceVersion: '943537'
uid: xxxd0b1bf76f42
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: mall-gateway
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
gitVersion: '1.0.2' # Tambahkan tag instans kustom
app: mall-gateway
armsPilotAutoEnable: 'on'
armsPilotCreateAppName: mall-gateway
spec:
containers:
- env:
- name: SERVICE_NAME
Metode 2: Suntikkan tag menggunakan variabel lingkungan pod
-
Untuk menggunakan metode ini pada aplikasi Java, versi agen ARMS harus 4.0.0 atau lebih baru.
-
Untuk menggunakan metode ini pada aplikasi Go, versi agen ARMS harus 1.5.0 atau lebih baru.
-
Untuk menggunakan metode ini pada aplikasi Python, versi agen ARMS harus 1.3.0 atau lebih baru.
Untuk menyuntikkan tag kustom yang hanya tersedia setelah pod dibuat (seperti podName), Anda dapat menyuntikkannya dengan menambahkan variabel lingkungan sistem operasi ke skrip startup kontainer aplikasi. Ikuti langkah-langkah berikut:
-
Tambahkan variabel lingkungan bernama ARMS_HOST_TAGS ke kontainer aplikasi Anda. Tetapkan nilainya ke tag instans Anda. Pisahkan beberapa tag dengan format
key1:value1&key2:value2. Contoh:export ARMS_HOST_TAGS="gitVersion:1.0.2&ip:192.168.1.101". -
Restart aplikasi agar perubahan diterapkan.
Tambahkan tag untuk agen yang diinstal secara manual
Aplikasi Java
Metode 1: Gunakan parameter -D
Tambahkan parameter -Darms.host.tags="${yourLabel}" ke perintah startup aplikasi Java Anda.
Ganti ${yourLabel} dengan tag instans yang ingin Anda tambahkan. Gunakan format key1:value1&key2:value2 untuk beberapa tag. Contoh: -Darms.host.tags="gitVersion:1.0.2&ip:192.168.1.101".
Metode 2: Ubah file konfigurasi
Agen v4.0.0 atau lebih baru
-
Seperti dijelaskan dalam Ubah file konfigurasi dan wilayah pelaporan default agen Java, buat file konfigurasi dengan ekstensi .properties di direktori mana pun. Di file tersebut, tambahkan field
profiler.tags.customtagsdan tetapkan nilainya ke tag instans Anda. Gunakan formatkey1:value1&key2:value2untuk beberapa tag. Contoh:#profiler.tags.customtags=key1:value1&key2:value2 profiler.tags.customtags=gitVersion:1.0.2&ip:192.168.1.101 -
Tambahkan parameter
-Dotel.javaagent.configuration-file=${path/to/config/file}ke parameter startup aplikasi Java Anda, atau tetapkan variabel lingkunganOTEL_JAVAAGENT_CONFIGURATION_FILE=${path/to/config/file}.Catatan-
Ganti
${path/to/config/file}dengan path lengkap file konfigurasi yang Anda buat. Contoh:-Dotel.javaagent.configuration-file=/home/admin/config/agent-config.propertiesatauOTEL_JAVAAGENT_CONFIGURATION_FILE=/home/admin/config/agent-config.properties. -
Jika parameter startup dan variabel lingkungan keduanya dikonfigurasi, parameter startup memiliki prioritas lebih tinggi.
-
-
Restart proses aplikasi.
Agen sebelum v4.0.0
-
Seperti dijelaskan dalam Ubah file konfigurasi dan wilayah pelaporan default agen Java, ubah field
profiler.tags.customtagsdi filearms-agent.config, yang berada di direktori instalasi agen. Anda dapat menambahkan tag instans kustom dalam formatkey1:value1&key2:value2. Contoh:#profiler.tags.customtags=key1:value1&key2:value2 profiler.tags.customtags=gitVersion:1.0.2&ip:192.168.1.101 -
Restart proses aplikasi.
Aplikasi Go
Deklarasikan variabel lingkungan, lalu restart proses aplikasi.
#export ARMS_HOST_TAGS=key1:value1&key2:value2
export ARMS_HOST_TAGS="gitVersion:1.0.2&ip:192.168.1.101"
Aplikasi Python
Deklarasikan variabel lingkungan, lalu restart proses aplikasi.
#export ARMS_HOST_TAGS=key1:value1&key2:value2
export ARMS_HOST_TAGS="gitVersion:1.0.2&ip:192.168.1.101"
Suntikkan tag aplikasi melalui pod labels
-
Untuk aplikasi Java, hanya komponen ack-onepilot versi v3.0.16 atau lebih baru yang mendukung penyuntikan tag aplikasi menggunakan pod labels.
-
Untuk aplikasi Go, hanya komponen ack-onepilot versi v3.2.0 atau lebih baru yang mendukung penyuntikan tag aplikasi menggunakan pod labels.
-
Untuk aplikasi Python, hanya komponen ack-onepilot versi v4.1.1 atau lebih baru yang mendukung penyuntikan tag aplikasi menggunakan pod labels.
-
Hanya ack-onepilot v4.1.2 atau lebih baru yang mendukung Metode 2 untuk menyuntikkan tag aplikasi.
Metode 1:
Jika label pod memiliki awalan app.customAppKey., ARMS mengidentifikasinya sebagai tag aplikasi, bukan tag instans.
Misalnya, dalam kode berikut, ARMS menambahkan tag aplikasi env: dev ke aplikasi yang terkait dengan workload ini.
template:
metadata:
labels:
app.customAppKey.env: dev
app: mall-gateway
armsPilotAutoEnable: 'on'
aliyun.com/app-language: golang # Diperlukan untuk aplikasi Go agar bahasa aplikasi teridentifikasi. Tidak diperlukan untuk aplikasi Java.
armsPilotCreateAppName: mall-gateway
Metode 2:
Untuk menggunakan kembali label pod yang sudah ada sebagai tag aplikasi, konfigurasikan komponen ack-onepilot.
Prasyarat
Versi ack-onepilot adalah 4.1.2 atau lebih baru.
Prosedur
-
Temukan Deployment untuk komponen ack-onepilot. Biasanya bernama ack-onepilot-ack-onepilot dan berada di namespace ack-onepilot.
Konfirmasi bahwa jumlah pod pada Deployment menunjukkan 2/2, yang menandakan komponen ack-onepilot berjalan dengan benar.
-
Tambahkan variabel lingkungan ARMS_APP_LABELS ke Deployment komponen ack-onepilot. Variabel ini berupa string yang dipisahkan koma berisi daftar kunci. Setelah dikonfigurasi, setiap kunci dari /spec/template/metadata/labels yang tercantum dalam variabel
ARMS_APP_LABELSakan diidentifikasi sebagai tag aplikasi.Misalnya, jika Anda menetapkan nilai
ARMS_APP_LABELSmenjadienv,group, maka tag dengan kuncienvdangroupdalam label pod akan diidentifikasi sebagai tag aplikasi. -
Tunggu hingga komponen ack-onepilot restart dan lulus pemeriksaan kesehatan. Kemudian, restart aplikasi Anda agar tag aplikasi diterapkan.
Di Konsol ACK, pada halaman detail Deployment ack-onepilot-ack-onepilot, konfirmasi bahwa status ready adalah 2/2 dan status semua pod adalah Running. Hal ini menunjukkan komponen siap digunakan.
-
Di ARMS, aplikasi merupakan konsep agregat yang merepresentasikan kumpulan instans aplikasi. Satu aplikasi dapat memiliki banyak instans dan berasal dari beberapa workload atau kluster Kubernetes. Oleh karena itu, penyuntikan tag aplikasi melalui pod labels merupakan praktik yang nyaman untuk skenario DevOps, tetapi memiliki batasan tertentu.
-
Tag aplikasi yang disuntikkan melalui pod labels hanya dapat ditambahkan. Tag tersebut tidak dapat dihapus dengan menghapus label dari YAML. Untuk memodifikasi atau menghapus tag, Anda harus menggunakan Konsol ARMS atau OpenAPI.
-
Jika beberapa workload dipetakan ke aplikasi ARMS yang sama, penyuntikan tag aplikasi melalui pod labels dapat menyebabkan konflik. Pastikan tag aplikasi konsisten di seluruh workload tersebut.
Gunakan tag aplikasi
Filter aplikasi
Di halaman Application List ARMS dan saat membuat aturan alert, Anda dapat menggunakan tag aplikasi untuk memfilter aplikasi secara cepat.
Kontrol akses berbasis tag
Anda dapat mengelola izin Resource Access Management (RAM) berdasarkan tag aplikasi. Untuk informasi selengkapnya, lihat Kebijakan RAM Kustom untuk Pemantauan Aplikasi.
Gunakan tag instans
Filter data berdasarkan tag instans
-
Masuk ke Konsol ARMS. Di panel navigasi kiri, pilih .
-
Di halaman Application List, pilih wilayah di bagian atas, lalu klik nama aplikasi target Anda.
CatatanIkon di kolom Language menunjukkan bahasa pemrograman aplikasi:
: Aplikasi Java yang terhubung ke Pemantauan Aplikasi.
: Aplikasi Go yang terhubung ke Pemantauan Aplikasi.
: Aplikasi Python yang terhubung ke Pemantauan Aplikasi.-: Aplikasi yang terhubung ke Managed Service for OpenTelemetry.
-
Di halaman detail aplikasi, Anda dapat memfilter data pemantauan berdasarkan tag instans, misalnya untuk membandingkan dan menganalisis data berdasarkan nomor versi gambar.
Kueri metrik berdasarkan tag di Grafana
-
Masuk ke Konsol ARMS. Di panel navigasi kiri, pilih .
-
Di halaman Application List, pilih wilayah di bagian atas, lalu klik nama aplikasi target Anda.
CatatanIkon di kolom Language menunjukkan bahasa pemrograman aplikasi:
: Aplikasi Java yang terhubung ke Pemantauan Aplikasi.
: Aplikasi Go yang terhubung ke Pemantauan Aplikasi.
: Aplikasi Python yang terhubung ke Pemantauan Aplikasi.-: Aplikasi yang terhubung ke Managed Service for OpenTelemetry.
-
Di panel navigasi kiri, klik Grafana View. Di bagian atas halaman, pilih tag berbeda untuk memfilter metrik.

> View in YAML