GithubHelp home page GithubHelp logo

jvmctl's People

Contributors

ato avatar brycollins avatar jonathanshaw avatar sdarvell avatar

Stargazers

 avatar

Watchers

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

Forkers

evilensky

jvmctl's Issues

logduct todo

  • CLI options for the daemon
  • Socket activation (accept listening socket on stdin)
  • Graceful restart/reload (passing open fds and serialized state to successor)
  • Close log files that are idle.
  • Persist unit name from socket establishment so messages from a now exited process are directed to the right file.
  • Daemon handling of secondary pipes like gc logs (logduct-run transfer them but they're currently ignored)
  • Log expiry
  • Decide compression policy
  • jvmctl integration
    • global logruct-run wrapping
    • log command
    • status command
  • Test failure behaviour
    • Disk full
    • Daemon killed
    • Permission denied writing to log files
    • Memory leak check
    • Full system reboot

Post deploy hooks

Some people want to run scripts post-deploy. For example:

  • Moving static assets around
  • Restarting dependent processes
  • Triggering database migrations

Sometimes they abuse nla-deploy.sh to try to do these things. It usually ends in tears.

We maybe should support something like this officially but it's not clear to me exactly how the feature should work.

journalctl issues

  • jvmctl needs to make tailing easy
  • Shift-F Shift-G etc in less hangs on large log files
  • Leading whitespace indentation is stripped (makes stack traces hard to distinguish)
  • Ctrl+C leads to terminal screwed upness (check less flags?)
  • Slow (to grep, seek etc)

config history keeping

The config directory becomes a git repo and jvmctl config automatically commits to it. To avoid dealing with authentication data leaks etc no pushing to a central server (the intent is you could pull if desired for backups). Add a new history command that runs git log -p.

Migration mechanism: the first config change should git init and commit everything.

non sudo error handler disappeared in recent version

[gpendleb@alfarin ~]$ jvmctl newspapers-browse restart
Traceback (most recent call last):
  File "/opt/bin/jvmctl", line 911, in <module>
    if __name__ == '__main__': main()
  File "/opt/bin/jvmctl", line 904, in main
    sys.exit(commands[cmd](Node(node), *args) or 0)
  File "/opt/bin/jvmctl", line 503, in restart
    node.autoregister()
  File "/opt/bin/jvmctl", line 441, in autoregister
    systemd_register(self)
  File "/opt/bin/jvmctl", line 807, in systemd_register
    with os.fdopen(os.open(env_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0600                                                                                                                      ), 'w') as f:
OSError: [Errno 13] Permission denied: '/var/cache/jvmctl/base/newspapers-browse                                                                                                                      /environment'
[gpendleb@alfarin ~]$ sudo jvmctl newspapers-browse restart

Service name parsing bug in logduct

The name "gs-rest-service-master" confuses the logging daemon as it does a regex search for "jvm:(.+).service". The . should be a literal not a wildcard match so we need to fix it to match with .service instead.

application register

Often we're asked to help compile a list of applications a particular branch is responsible for.

Perhaps jvmctl could asynchronously push the app name, branch version and hostname to a central repository on deploy and or start.
An optional conf variable for owner could be added and pushed aswell.
Start time could also be included, which would help show application uptimes in an app dashboard or something of that kind.
It might help to maintain an application register.

Just an idea..

Jetty 9.3.3+ tries to write start properties file to jetty.base dir

This change conflicts with our model of a read-only jetty base directory:
jetty/jetty.project@837a36e

A second commit makes the properties file path configurable
jetty/jetty.project@aca2aa5

So probably our best bet is to specify a path in /var/run/. Presumably older versions of Jetty error when given that argument though so we'll have to gate it on jetty version somehow.

Workarounds for now either:

  • Use a version of Jetty prior to this change
  • Manually make jetty base directory writable by the user the application is running as.

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.