# Caller Service
## Overview
This is a simple Golang service that performs HTTP calls to another service and logs the results using Zap for structured logging and Elastic APM (Application Performance Monitoring) for distributed tracing. It's designed to run in a Docker container and can be part of a microservices architecture.
## Features
- Periodically makes HTTP calls to another service.
- Logs request results with structured logging using Zap.
- Traces the requests using Elastic APM, providing insights into request latency and performance.
- Configurable service URL for making HTTP calls.
- Easy setup for use in a Dockerized environment.
## Requirements
- Go (for building and running the service)
- Docker (for running in a containerized environment)
- Elastic APM Server (for tracing, specify the APM server URL in the agent's configuration)
- ELK Stack (for structured logs and trace visualization, including Logstash and Kibana)
## Installation and Usage
1. Build the first go service:
```bash
go build -o caller main.go
```