# Zipkin
## install zipkin using docker
`docker pull openzipkin/zipkin`
`docker run -d -p 9411:9411 openzipkin/zipkin`
Open http://localhost:9411/zipkin/
**Note**:
To run pipkin without docker and log into elasticsearch
`java -DSTORAGE_TYPE=elasticsearch -DES_HOSTS=http://127.0.0.1:9200 -jar zipkin.jar`
## Apply zipkin in project
* Add Zipkin Client as a dependency into project
* Add Sleuth as a dependency into project
* Add the following properties:
`spring.zipkin.baseUrl=http://95.177.160.100:9411
spring.sleuth.sampler.probability=1.0
spring.zipkin.enabled=true
`
## Apply logstash for logging
* add the following dependencies into pom file
```
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
```
* create logback-spring.xml in resources
* add the following configuration for it
```
<configuration debug="true" scan="true" scanPeriod="30 seconds">
<include resource="org/springframework/boot/logging/logback/base.xml" />
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>95.177.160.100:5044</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<mdc/>
<context/>
<version/>
<logLevel/>
<loggerName/>
<message/>
<pattern>
<pattern>
{
"appName": "cs-activities"
}
</pattern>
</pattern>
<threadName/>
<stackTrace/>
</providers>
</encoder>
</appender>
<!-- <root level="info" additivity="false">
<appender-ref ref="SAVE-TO-FILE" />
</root> -->
<!-- ##Handling logs according to Profile used## -->
<springProfile name="local">
<logger name="sa.com.stc.cs.blinkplus" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
</springProfile>
<springProfile name="dev,test">
<root level="INFO" additivity="false"></root>
<logger name="sa.com.stc.cs.blinkplus" level="INFO" additivity="false">
<appender-ref ref="CONSOLE" />
<appender-ref ref="logstash"/>
</logger>
</springProfile>
<springProfile name="prod">
<logger name="sa.com.stc.cs.blinkplus" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="logstash"/>
</logger>
</springProfile>
</configuration>
```