---
title: "Jalankan, pantau, dan bayar aplikasi dengan erpc worker"
description: "Lihat apakah aplikasi berjalan dan biaya per jamnya, rollback rilis, ukur latensi RPC dari server, backup state-nya, dan akhiri tagihan per jamnya."
canonical: "https://erpc.global/id/doc/erpc-cli/worker-status-and-billing/"
locale: "id"
---

# Jalankan, pantau, dan bayar aplikasi dengan erpc worker

`erpc worker status` menampilkan apakah aplikasi Anda berjalan dan berapa biayanya per jam. Setiap aktivasi menampilkan harganya lebih dulu, dan `erpc worker delete --release-server` mengakhiri gRPC, Shreds, dan Unlimited RPC yang dipakai aplikasi per jam, lalu server per jamnya.

Halaman ini menjelaskan ERPC CLI `v0.1.0-rc.4`, versi pra-rilis.

## Memeriksa aplikasi

```text
$ erpc worker status --env prod
api-prod on 203.0.113.10: running, release 20261101T093000Z-1a2b3c4d, pid 4217, up 2h 14m
  current 20261101T093000Z-1a2b3c4d, previous 20261028T171500Z-9f8e7d6c, 2 releases kept
  WAF: listening on port 8080, forwarding to 127.0.0.1:3000, since 2026-11-01T09:30:12Z; requests 5120, forwarded 5043, blocked 71, connections refused 12, app errors 6, addresses banned now 1
  `erpc worker delete --release-server --env prod` ends what this app is charged for.
```

`status` menampilkan apakah aplikasi terkunci atau berjalan, rilis yang mana, dan sejak kapan. Saat Anda sudah masuk, perintah ini juga menampilkan biaya per jam lingkungan tersebut, setiap item dengan harga yang ditagihkan ke akun Anda untuk item itu, serta kredit akun Anda beserta berapa lama kredit itu bertahan. `--json` memuat hal yang sama di bawah `hourly.charged`.

Item yang tidak ada di antara tagihan akun disebut tidak ada di antaranya, bukan disebut sudah berakhir, karena daftar itu bisa tertinggal satu menit dari sebuah aktivasi. Tanpa sesi, atau saat tagihan akun Anda tidak dapat dibaca, `status` menyebutkan apa yang tercatat.

## Mengendalikan aplikasi

| Perintah | Fungsinya |
| --- | --- |
| `erpc worker logs -n 200`, `logs -f` | Log aplikasi dan log agen. Karakter kontrol di dalam baris dicetak sebagai `?` |
| `erpc worker start` | Menjalankan aplikasi, sambil mengirim kunci saat worker terkunci |
| `erpc worker stop`, `stop --lock` | Menghentikannya; `--lock` juga menghapus kunci dari memori |
| `erpc worker restart` | Menghentikan lalu menjalankannya lagi |
| `erpc worker releases` | Rilis yang disimpan di server (`deploy.keep_releases`) |
| `erpc worker rollback`, `rollback --to <release>` | Kembali ke rilis sebelumnya, atau ke rilis yang disebut. Ditolak, dengan rilis yang sedang dipakai dibiarkan seperti semula, jika port health check milik rilis itu sekarang dipakai worker lain yang sedang berjalan |
| `erpc worker api <PATH>` | Membaca API aplikasi dari mesin ini, sementara API tetap di loopback server (`-X POST`, `-d '{...}'` untuk perubahan) |
| `erpc worker trades [--profit]` | Trade aplikasi di server-nya |
| `erpc worker list` | Aplikasi di mesin ini dan tempat masing-masing di-deploy; `--prune` menghapus aplikasi yang `erpc.toml`-nya sudah tidak ada |

`API_TOKEN` milik aplikasi dibaca di sini dan sampai ke server lewat standard input, tidak lewat command line mana pun dan tidak masuk ke journal mana pun. Setiap perintah worker menerima `--env <name>` (default `default`) dan `--json`, kecuali `secret unlock` dan `secret lock`, yang berkaitan dengan keystore mesin ini dan bukan dengan aplikasi, sehingga tidak menerima `--env`. Dijalankan dari mana saja, sebuah perintah menemukan aplikasinya lewat nama yang dikenal oleh erpc; `secret put`, `secret rm`, `key import`, `firewall allow`, dan `firewall deny` hanya menerima aplikasi lewat `--dir`.

## Cara kerja biaya per jam

- **Setiap aktivasi menampilkan harganya lebih dulu.** Di terminal, aktivasi hanya terjadi setelah jawaban "ya"; dengan `--yes`, command line yang menyebut apa yang akan diaktifkan itulah jawaban "ya"-nya.
- **Produk per jam dibayar dari ERPC Credit**, yang dibeli sebelumnya, dan aktivasi yang biayanya tidak tercukupi oleh kredit akan ditolak. Harga tercantum di [Harga](https://erpc.global/id/price/) dan di [ERPC Web Dashboard](https://dashboard.erpc.global/id).
- **VPS baru langsung tercatat begitu namanya disebut,** sebelum VPS itu siap. Deploy berikutnya memakainya alih-alih membeli VPS lain.
- **Untuk `deploy`, aktivasi yang tidak mendapat jawaban dikirim ulang, tidak pernah sebagai aktivasi baru.** Request key-nya tetap tercatat (`[env.<name>.starting]`), sehingga menjalankan perintah yang sama lagi mengirim request yang sama. Setelah beberapa jawaban tertentu, request key itu tetap ada sampai Anda menghapusnya secara manual ([Pembelian yang tidak dapat dicatat oleh erpc](https://erpc.global/id/doc/erpc-cli/worker-troubleshooting/#pembelian-yang-tidak-dapat-dicatat-oleh-erpc)). `erpc worker run` tidak menyimpan catatan, sehingga run berikutnya membuat request baru.
- **Deploy satu lingkungan dalam satu waktu.** Dua deploy untuk lingkungan yang sama yang dimulai bersamaan bisa membeli dua, dan hal itu tidak didukung.
- **Apakah sebuah line masih ada ditentukan oleh apa yang ditagihkan ke akun.** Line yang tidak ditagih per jam tidak pernah diakhiri oleh erpc: akhiri line itu di dashboard.

## Menghapus aplikasi

`erpc worker delete` menghapus worker. `erpc worker delete --release-server` juga mengakhiri line-nya, lalu server per jamnya. Apa yang tidak dapat diakhiri tetap tercatat, dan line yang tidak ditagih per jam disebutkan namanya, untuk diakhiri di dashboard.

- Delete biasa menolak VPS yang sudah dibeli tetapi belum pernah dijangkau, karena delete itu akan melupakannya padahal VPS itu masih ditagih. Delete biasa untuk VPS per jam yang sudah dijangkau menghapusnya dari catatan meskipun VPS itu masih ditagih, dan memberi peringatan tentang hal itu.
- `--forget` tidak mencoba menjangkau server yang sudah tidak dapat dijangkau lagi, dan `--forget-line <id>` menghapus dari catatan line yang diakhiri di luar erpc.

## Mengukur latensi RPC dari server

`erpc worker bench` mengukur waktu panggilan RPC dari server milik lingkungan tersebut: shared RPC milik ERPC, Unlimited RPC-nya, dan RPC lain mana pun, secara berdampingan. Agen di server mengukur waktu setiap panggilan, sehingga angkanya adalah apa yang didapat aplikasi.

```bash
erpc worker bench                                  # getSlot: shared RPC vs the Unlimited RPC
erpc worker bench --rounds 300 --interval 150      # for a plan that limits calls per second
erpc worker bench --url other=op://<vault-id>/<item-id>/url   # another provider's RPC
```

- `--method` menerima `getSlot`, `getBlockHeight`, `getLatestBlockhash`, atau `getHealth`.
- `--no-shared` mengecualikan shared RPC. Nilai `--url` boleh berupa URL itu sendiri, referensi `op://…`, `keychain:…`, atau `keystore:…` (ke tempat disimpannya URL yang berisi kunci; tidak pernah ke entri kunci trading, yang akan ditolak), atau `-` (dibaca dari standard input, atau diminta lalu diketik tanpa ditampilkan). Lebih dari enam endpoint akan ditolak.
- Bench mencetak p50, p90, p99, min, dan max, kegagalan beserta alasan pertamanya, dan berapa slot setiap jawaban tertinggal dari jawaban paling baru di ronde yang sama.
- Kunci sampai ke server hanya lewat standard input, dan tabel menampilkan scheme, host, dan port.

## Backup state aplikasi

`erpc worker backup on` mem-backup state aplikasi setiap hari ke ERPC Global Storage, dienkripsi oleh restic, pada `--at` menurut waktu server dan dalam 30 menit setelahnya. Diperlukan paket penyimpanan (`erpc storage buy 5`).

- **Yang di-backup** adalah state aplikasi, `/var/lib/private/erpc-worker-<id>`. Rilis tidak di-backup, karena deploy memasangnya kembali. Data Redis dan PostgreSQL tidak tercakup.
- **Server tidak dapat menghapus snapshot.** Server tidak pernah memegang sesi erpc, kunci admin akun, maupun kata sandi master-nya.
- **Server yang diambil alih dapat** membaca snapshot semua mesin di akun, termasuk milik mesin ini; tetap memegang kunci repository, yang tidak pernah diubah oleh restic, setelah `off`; menambahkan snapshot dengan nama mesin lain, jadi setelah itu periksa apa yang dipilih `restore latest`; dan memenuhi penyimpanan akun, yang menghentikan backup semua mesin. `erpc worker backup off` mencabut access key server lebih dulu, baik server menjawab maupun tidak.
- **restic menyalin file apa adanya** selagi worker berjalan, sehingga database mungkin memerlukan dump sendiri agar dapat dipulihkan dalam keadaan konsisten. Run yang terlewat selagi server mati akan berjalan saat server kembali menyala.
- `erpc worker backup off`, `status`, dan `now` menghentikan, melaporkan, dan menjalankan backup. Snapshot tetap ada setelah `off`, dan `erpc backup prune --host` memangkas snapshot lama.

Pulihkan dari mesin ini, setelah menjalankan `erpc backup init` di mesin ini:

```bash
erpc backup restore latest --from-host erpc-worker-<id>-<tag> --path /var/lib/private/erpc-worker-<id> --target ./restored
```

## Beberapa lingkungan dan mesin

- Beberapa worker di satu server masing-masing berjalan sebagai unit tersendiri, berbagi tabel firewall server, dan masing-masing hanya membuka port miliknya sendiri.
- Satu aplikasi dapat memiliki beberapa lingkungan (`[env.staging]`, `[env.prod]`), masing-masing dengan server dan line-nya sendiri.
- Sebuah lingkungan dapat menyimpan data server-nya di 1Password, bukan di `erpc.toml`. Dengan begitu, mesin mana pun yang masuk ke vault tersebut, dengan repository aplikasi, dapat menjalankan setiap perintah; referensi `keychain:` dan `keystore:` di aplikasi seperti itu akan memunculkan peringatan, karena mesin lain tidak dapat membacanya. Lingkungan baru menyimpan datanya di 1Password jika `erpc login` menyimpan sesi di sana; `deploy --vault <vault-id>` menyebut vault lain, dan `deploy --inline` menyimpan data tersebut di `erpc.toml`.
