MailgunLogger

栏目: IT技术 · 发布时间: 5年前

内容简介:Simple admin tool to get Mailgun persistence ad infinite.MailgunLogger is a simple admin tool that uses the Mailgun API to retrieves events on a regular basis from Mailgun - who only provide a limited time of event storage - and stores them inside a Postgr

Mailgun Logger

Simple admin tool to get Mailgun persistence ad infinite.

MailgunLogger is a simple admin tool that uses the Mailgun API to retrieves events on a regular basis from Mailgun - who only provide a limited time of event storage - and stores them inside a Postgres database. For efficiency and less complexity, it retrieves events for the last two days (free accounts offer up to three days of persistence) and then inserts everything. Only new events will pass the unique constraint on the db.

This is done because, as stated in the Mailgun docs, it is not guaranteed that for a given time period, all actual events will be ready, since some take time to get into the system although they already happened.

See the docs for implementation details.

IMPORTANT

This application is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Mailgun, or any of its subsidiaries or its affiliates. The official Mailgun website can be found at Mailgun .

This is NOT meant as a replacement for the excellent online tooling provided by Mailgun. Just simple storage, that's it.

Jack + Joe is not responsible for your use of this tool, neither for any persistence guarantees. Free comes at a price :)

Installation

MailgunLogger is available as a Docker image at Docker . To run it:

Docker

$ docker run -d -p 5050:5050 \
  -e "ML_DB_USER=username" \
  -e "ML_DB_PASSWORD=password" \
  -e "ML_DB_NAME=mailgun_logger" \
  -e "ML_DB_HOST=my_db_host" \
  --name mailgun_logger jackjoe/mailgun_logger

Docker Compose

With the following docker-compose.yml :

version: "3"

services:
  db:
    image: postgres
    networks:
      - webnet
    environment:
      POSTGRES_PASSWORD: logger
      POSTGRES_USER: logger
      POSTGRES_DB: mailgun_logger

  web:
    image: jackjoe/mailgun_logger
    ports:
      - "5050:5050"
    networks:
      - webnet
    environment:
      DB_HOST: db
      ML_DB_USER: logger
      ML_DB_PASSWORD: logger
      ML_DB_NAME: mailgun_logger
      ML_DB_HOST: db

networks:
  webnet:

Run:

$ docker-compose up

Then head over to http://0.0.0.0:5050 .

Contributing

To run on your local machine, you need to setup shop first. Mailgun Logger requires a Postgres database using the following environment variables along with their defaults:

# config/config.ex
config :mailgun_logger, MailgunLogger.Repo,
  username: System.get_env("ML_DB_USER", "mailgun_logger_ci"),
  password: System.get_env("ML_DB_PASSWORD", "johndoe"),
  database: System.get_env("ML_DB_NAME", "mailgun_logger_ci_test"),
  hostname: System.get_env("ML_DB_HOST", "localhost"),

Either export your own enviroment variables or adhere to the defaults. Then, for convenience, run:

# runs mix local.hex, deps.get, compile; install dev certificates, make run (see below)
$ make install

which will install all dependencies and setup local dev https certificates using phx.cert .

Then you can run the project:

# runs `iex -S mix phx.server`
$ make run

All of the make targets are convenience wrappers around mix , feel free to run your own. If you are using your own environment variables, consider gathering them in an .env file and source that prior to running the make command:

# non POSIX uses `source` instead of `.`
$ . .env && make run

Then head over to https://0.0.0.0:7000 .

TODO

  • check timestamp conversion!
  • clean up Makefile
  • add travis CI
  • add docker for CI
  • test coverage
  • provide generic logging agent? (no papertrail)

License

This software is licensed under the MIT license .

About Jack + Joe

MailgunLogger is our very first open source project, and we are excited to get it out! We love open source and contributed to various tools over the years, and now we have our own! We use it ourselves as well.

Our announcement article .

Get to know our projects, get in touch. jackjoe.be


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

学习JavaScript数据结构与算法(第2版)

学习JavaScript数据结构与算法(第2版)

[巴西] Loiane Groner / 邓 钢、孙晓博、吴 双、陈 迪、袁 源 / 人民邮电出版社 / 2017-9 / 49.00元

本书首先介绍了JavaScript 语言的基础知识以及ES6 和ES7 中引入的新功能,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序、顺序搜索、二分搜索,然后介绍了动态规划和贪心算法等常用的高级算法以及函数式编程,最后还介绍了如何计算算法的复杂度。一起来看看 《学习JavaScript数据结构与算法(第2版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具