Go: Menulis Log ke File

Jika kamu menjalankan aplikasi di server, kamu perlu menulis log aplikasi ke file. Ini akan membantu kamu men-debug dan menganalisis aplikasi kamu. File log yang baik akan memberi tahu kamu apa kesalahannya, kapan itu terjadi, dan dari mana asalnya. Artikel ini akan menunjukkan cara menulis log ke file di Go.

[Read More]
go  logs  linux 

Upload File ke Amazon S3 dengan Go

Saat aplikasi kamu menangani banyak file seperti gambar atau dokumen, kamu perlu menyimpan file tersebut dalam sistem penyimpanan tertentu di luar server aplikasi kamu. Salah satu layanan penyimpanan terbaik adalah Amazon S3. Artikel ini akan menunjukkan cara membuat Bucket Amazon S3, membuat access key id dan secret, dan mengunggah file ke Amazon S3 dengan Go.

[Read More]
S3  aws  go 

Profiling Go App Menggunakan pprof

Melakukan profiling pada suatu sistem sangat berguna untuk mengidentifikasi pemakaian resource pada saat aplikasi berjalan. Kita dapat melihat fungsi apa yang memakai paling banyak CPU atau memori. Kita dapat melihat apakah aplikasi kita sudah efisien atau belum, dan kita dapat mencari cara untuk mengimprovenya. Pada aplikasi Go, kita dapat menggunakan pprof, library built-in untuk profiling yang dapat dengan mudah kita gunakan dan integrasikan.

[Read More]

Distributed Tracing dengan Jaeger di Go

Distributed tracing digunakan oleh software engineer untuk memonitor atau men-debug aplikasi. Ini sangat berguna untuk menemukan proses mana yang memakan waktu paling banyak, atau fungsi apa yang paling banyak terjadi error. Salah satu system untuk melakukan distributed tracing adalah Jaeger. Artikel ini akan menunjukkan bagaimana menjalankan Jaeger di local environment dan melakukan tracing aplikasi Go. Apa itu distributed tracing? Berdasarkan opentracing.io, distributed tracing adalah metode untuk mem-profile dan memonitor aplikasi, terutama aplikasi-aplikasi yang dibuat menggunakan architecture microservice. [Read More]

Golang Function Timeout Dengan Context

Timeout bisa sangat berguna pada suatu aplikasi. Dia dapat membatasi berapa lama durasi maksimum suatu proses. Kita dapat menghemat resource dengan menghentikan proses ketika waktu timeout sudah terlewati. Pada bahasa pemrograman Go, kita dapat menggunakan context untuk mengatur timeout pada suatu fungsi.

[Read More]

Zero Downtime Reload Menggunakan Socketmaster

Zero downtime reload sudah menjadi keharusan pada kebanyakan sistem, terutama sistem yang diakses user sepanjang waktu. User menginginkan sistem yang memilik high availability. Jadi merupakan hal buruk apabila sistem memerlukan downtime untuk reload walaupun hanya dalam hitungan milisecond. Socketmaster hadir untuk membantu kita membuat sistem dengan zero downtime reload.

[Read More]

Handle Panic di HTTP Server dengan Middleware Go

Kalau kalian pernah coding di Go, kemungkinan besar pernah kena panic. Panic bisa mematikan aplikasi mu kalau tidak di recover. Untungnya di HTTP server bawaan Go sudah ada recovery untuk panic, jadi server tetap bisa berjalan walaupun ada panic. Tapi dari sisi client tidak mendapat response apa-apa kalau server kena panic. Jadi lebih baik kalau kita menggunakan panic recovery kita sendiri yang memberikan response dengan error message ketika ada panic.

[Read More]
go  http 

Menunggu Beberapa Goroutine Selesai Dengan WaitGroup

Goroutine sangat berguna untuk menjalan proses secara asynchronous. Kita juga bisa menggunakan beberapa goroutine untuk menjalankan beberapa proses dalam waktu bersamaan. Tapi bagaimana kalau kita ingin menunggu goroutine tersebut selesai sebelum melanjutkan ke proses berikutnya? Kita dapat menggunakan WaitGroup untuk mengunggu goroutine selesai dijalankan.

[Read More]
go