GithubHelp home page GithubHelp logo

archan0621 / pinpoint-docker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pinpoint-apm/pinpoint-docker

0.0 0.0 0.0 244.27 MB

Official Dockerized components of the Pinpoint

Home Page: http://pinpoint-apm.github.io/pinpoint/

License: Apache License 2.0

Java 30.68% Dockerfile 69.32%

pinpoint-docker's Introduction

Pinpoint

Pinpoint-Docker for Pinpoint

Official git repository of Dockerized components of the Pinpoint Application Monitoring.
Installing Pinpoint with these docker files will take approximately 10min. to check out the features of pinpoint.

What is Pinpoint

Pinpoint, is the world's leading open-source application monitoring solution - trusted by millions of users around the globe. It supports and helps you understand your application in a glance and allow you to build world-class, high-quality software.

Supported Tags

  • 2.5.3-metric (for web and collector)
  • 2.5.3
  • 2.5.2-metric (for web and collector)
  • 2.5.2
  • 2.5.1-metric (for web and collector)
  • 2.5.1
  • 2.5.0
  • 2.4.2
  • 2.4.1
  • 2.4.0
  • 2.3.3
  • 2.3.2
  • 2.3.1
  • 2.3.0
  • 2.2.2
  • 2.2.1
  • 2.2.0
  • 2.1.2
  • 2.1.0
  • 2.0.4
  • 2.0.3
  • 2.0.2
  • 2.0.1
    • Default transport module has changed from THRIFT to gRPC
    • Spring profiler added (check homepage for more info)
  • 1.8.5
  • 1.8.4
  • 1.8.3
  • 1.8.2
  • 1.8.1
  • 1.8.0
  • 1.7.3
  • 1.7.2

Requirements

How to install Pinpoint?

You can easily bring up an entire Dockerized Pinpoint(latest release) environment by using Docker Compose with any of the provided docker-compose.yml files as below.
With docker-compose.yml under Pinpoint-Docker folder brings up all the environment attached with Pinpoint-QuickStart(sample app). To monitor your agent see configuration part for further details.

git clone https://github.com/pinpoint-apm/pinpoint-docker.git
cd pinpoint-docker
docker-compose pull && docker-compose up -d

Since Pinpoint v2.5.0, URI Metric and Infrastructure Metric are added. These need Apache Pinot cluster to work and docker-compose-metric.yml has been added to provide them. To use URI Metric and Infrastructure Metric, include docker-compose-metric.yml to bring up Pinpoint containers as decribed below.

git clone https://github.com/pinpoint-apm/pinpoint-docker.git
cd pinpoint-docker
docker-compose pull
docker-compose -f docker-compose.yml -f docker-compose-metric.yml up -d

Docker images for Pinpoint web and Pinpoint collector is provided since v2.5.1, so above wouldn't work with v2.5.0 images. To use Pinpoint v2.5.0 metric modules, you need to checkout v2.5.0 and then build the images ahead with below command.

git clone https://github.com/pinpoint-apm/pinpoint-docker.git
cd pinpoint-docker
git checkout {tag}
docker-compose -f docker-compose.yml -f docker-compose-metric.yml build

If you are not interested in metric modules, simply remove -f docker-compose-metric.yml in docker-compose commands.

Below are the list of images provided by this project:

You can replace QuickStart application part with your application to start monitoring.

Below are the list of images required for this project:

  • Apache Zookeeper v3.4.13: For Hbase and Pinpoint cluster
  • Apache Zookeeper v3.8.0: For Pinot cluster
  • Apache Pinot: Tested with v0.11.0 ~ v0.13.0. Please refer to pinot-init in docker-compose-metric.yml to further see tables and schema information for Pinpoint.
  • Kafka: Currently using 3.1-22.04_beta. Please refer to pinpoint-kafka-init in docker-compose-metric.yml to further see topics needed for Pinpoint.

Mysql (optional, 1.8.1+)

The Pinpoint-Mysql is necessary to use 'Alarm' feature. It's server is running on port 13306 and contains the data structure used to register users, groups, and alerts to be sent.

To send email alerts, you must make BATCH_ENABLE=true and change the other mail-related environment variables (MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_PROPERTIES_MAIL_SMTP_FROM, ...) to the Pinpoint-Web server in .env file.

For more information checkout Setting Alarm in Pinpoint documentation.

Flink configuration (optional)

The Pinpoint-Flink is necessary to use 'Application Inspector' feature.

After all containers are started and ready to go. Pinpoint-Flink server is running on port 8081.

Alarm configuration (optional)

You can check the alarm guide document at the homepage for full understanding. But for the docker image, All is set. fillout variables under #mail server information required in .env file before starting the container

Testing QuickStart application

Now you are ready to monitor the sample application(Pinpoint-QuickStart port 8085) provided. If you can't find any connected application from Pinpoint-Web's first page(port 8080 as default), don't panic and wait for a while. It will take some time for Pinpoint to retrieve the application's information when running for the first time.

Monitoring YOUR Application

Pinpoint-Agent only prepares required libraries for triggering Pinpoint-Agent. Running and configuring agents is manual action done by the user, but don't worry it's very simple.

If you are not familiar with Pinpoint concept, please read: Overview, Agents Installation

You will need to attach Pinpoint-Agent to your application.

Running Pinpoint-Agent docker-compose separately, Examples are here.
Otherwise, you can check how Pinpoint-Quickstart is attached to Pinpoint-Agent with docker-compose.

We'll try to create more examples along the way. If anyone who can share their dockerfile, it's always welcome.

Distributed System

Until now, every components are in one docker, single-node approach, which is excellent for test and development. It provides an easy way to prototype new ideas and use cases, as well as try out new functionality and the latest Pinpoint releases. It’s not intended nor supported for production use.

You can use docker-compose and .env files under each folder to install the modules separately into several servers. If containers are separated, ip configurations in .env must be changed within.

For example, if you want your application running from a docker and rest of Pinpoint in another. You can remove pinpoint-agent and pinpoint-quickstart from docker-compose.yml and run to establish all necessary component of pinpoint. And create another docker-compose.yml just like one under pinpoint-quickstart folder to run your application. Finally, since agent needs to acknowledge the collector ip. collector ip needs to be changed in .env.

Configurations

Configuration relies on supplying docker-compose with environment variables defined in .env file. So it's recommended to change variables only from .env file. With docker-compose in this repository. You can create stand-alone containers that are needed to run most of the features in Pinpoint.

Ports can be also configured in .env file. (Default ports are Pinpoint-Web:8080, Pinpoint-Batch:8079, Quickstart:8085 and Flink:8081 as configured in .env file)

Pinpoint-Zookeeper is just an example of using zookeeper image. You can modify docker-compose files to suit your needs.

For more specific details on what the values represents in .env file. Please check Pinpoint Github Repository or Pinpoint Web properties, Pinpoint Collector properties, Pinpoint Agent configuration.
Please note that only essential configuration options are adopted to pinpoint-docker(docker-compose).

logs

You can check logs produced by these services

docker logs <containerId>

You can also easily change the log level from .env file.

Any Issues or Suggestions?

Feel free to share any problems and suggestions via Pinpoint GitHub Issue page. Contributions on the pinpoint-docker image is also always welcome.

License

Pinpoint is licensed under the Apache License, Version 2.0. See LICENSE for full license text.

Copyright 2018 NAVER Corp.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

pinpoint-docker's People

Contributors

roysrose avatar ga-ram avatar headless-kjh avatar emiling avatar iamkyu avatar jokimina avatar koo-taejin avatar kyungtae-k avatar stoneknocker avatar qudongfang avatar won983212 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.