Can I run aws-xray on the same ECS container?

亡梦爱人 提交于 2021-01-29 22:50:38

问题


I don't want to have to deploy a whole other ECS service just to enable X-Ray. I'm hoping I can run X-Ray on the same docker container as my app, I would have thought that was the preferred way of running it. I know there might be some data loss if my container dies. But I don't much care about that, I'm trying to stop this proliferation of extra services which serve only extra analytical/logging functions, I already have a logstash container I'm not happy about, my feeling is that apps themselves should be able to do this sort of stuff.


回答1:


While we have the Dockerhub image of the X-Ray Daemon, you can absolutely run the daemon in the same docker container as your application - that shouldn't be an issue.

Here's the typical setup with the daemon dockerfile and task definition instructions: https://docs.aws.amazon.com/xray/latest/devguide/xray-daemon-ecs.html

I imagine you can simply omit the task definition attributes around the daemon, since it would be running locally beside your application - those wouldn't be used at all.




回答2:


So I think the proper way to do this is using supervisord, see link for an example of that, but I ended up just making a very simple script:

# start.sh
/usr/bin/xray &
$CATALINA_HOME/bin/catalina.sh run

And then having a Dockerfile:

FROM tomcat:9-jdk11-openjdk

RUN apt-get install -y unzip
RUN curl -o daemon.zip https://s3.dualstack.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-3.x.zip
RUN unzip daemon.zip && cp xray /usr/bin/xray

# COPY APPLICATION
# TODO

COPY start.sh /usr/bin/start.sh
RUN chmod +x /usr/bin/start.sh

CMD ["/bin/bash", "/usr/bin/start.sh"]

I think I will look at using supervisord next time.



来源:https://stackoverflow.com/questions/60701384/can-i-run-aws-xray-on-the-same-ecs-container

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!