Giter VIP home page Giter VIP logo

heroku-buildpack-metrics's Introduction

heroku-buildpack-metrics

This buildpack sets up the necessary machinery to utilize Heroku's Language Metrics feature.

How does it affect my slug?

This buildpack copies a .profile.d/ script into your slug. The .profile.d/ script downloads the latest agentmon release, and starts it on Dyno boot.

Releasing

If you belong to the Heroku org, you can release a new version of the buildpack by running the following command:

$ git tag vXXX
$ heroku buildpacks:publish heroku/metrics vXXX

This will publish the tag vXXX as a new version of the heroku/metrics buildpack. If you get a 401 you may not have the right permissions to publish. Check with @jkutner

Testing

This buildpack uses Hatchet to run integration tests. To run them local make sure you have Ruby installed, then execute:

$ bundle install
$ bundle exec rspec spec/

heroku-buildpack-metrics's People

Contributors

apg avatar cyx avatar dependabot[bot] avatar edmorley avatar jkutner avatar sclasen avatar xe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heroku-buildpack-metrics's Issues

Strange logs possibly caused by this buildpack?

My production app is all-of-the-sudden full of logs like those shown below. I also opened a support ticket if that's helpful.

Apr 26 11:15:45 app/web.1 agentmon: flush: send: upstream service replied with status=401: "dynoidmap: no dyno information exists for that UUID\n"
Apr 26 11:15:53 app/worker.1 agentmon: flush: send: upstream service replied with status=401: "dynoidmap: no dyno information exists for that UUID\n"

Updates to agentmon require a recompile of the application

One way to solve this is to download the agent on dyno boot instead.
This closes the window to upgrade to 24h max due to dyno cycling behavior.
But does leave us to the mercy of future changes in that cycling behavior.
And there is no real way to roll out a change immediately (security issue maybe?), should that be necessary (beyond scripting up finding all apps with the feature flag and restarting all of their dynos).

Another option is to have agentmon be self updating, where it polls a know location for some meta-data about the current version and compares it to it's version, then downloads and update and exists (or execs the update).

Other thoughts?

interactive dynos also run agentmon

Maybe we shouldn't do this?

$ heroku run bash -a jvm-metrics-sample-app
Running bash on ⬢ jvm-metrics-sample-app... up, run.3025 (Standard-1X)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   609    0   609    0     0   9536      0 --:--:-- --:--:-- --:--:--  9666
100 2210k  100 2210k    0     0  10.8M      0 --:--:-- --:--:-- --:--:-- 10.8M
agentmon setup took 0 seconds
agentmon: Listening on :14996...
agentmon: debug: handling incoming statsd packet
~ $

no web dyno when build pack is included

When we include this buildpack on a ruby project then the application is deployed without a web dyno (and thus doesn't function)
image

If we remove the buildpack and redeploy everything returns to normal.

Buildpack making our app unavailable

We had a weird bug this week where our application was down and we couldn't figure out why.

Using run:inside to get a console we saw a ton of agentmon failures. Once I figured out that it might be coming from the metrics buildpack I went ahead and removed it. The app was available and working after another release.

/cc @heroku/tools @daneharrigan

README out of date

Hi!

The README says:

This buildpack does two things.

  1. Copies a jar into the slug
  2. Copies a .profile.d/ script into your slug

However after #32 it no longer does (1), only (2).

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.