mesosphere / chaos Goto Github PK
View Code? Open in Web Editor NEWA lightweight framework for writing REST services in Scala.
License: Apache License 2.0
A lightweight framework for writing REST services in Scala.
License: Apache License 2.0
In order to modularize components, get rid of Guice and replace it by the convenient way of Scala.
Having the example in the same structure as the chaos build is not convenient.
It would be nice if we could document which steps are necessary to publish a new release.
E.g.:
Whatever is necessary.
Try out the MacWire for wiring. Also add some actor and AOP examples.
A generic CORS header was added in commit d9c111b, but that does not fully fit the requirements of Agora.
As noted in MDN's requests with credentials, "when responding to a credentialed request, server must specify a domain, and cannot use wild carding." That means the /ping
endpoint needs to return the requesting domain to allow the client to hit the credentialed end point.
Access-Control-Allow-Credentials: true
headerAccess-Control-Allow-Origin
header
Access-Control-Allow-Origin: https://www.datacentercomputer.com
It would be nice to have a command line option for this, for example, to listen on localhost only instead of 0.0.0.0. Jetty supports this via: http://download.eclipse.org/jetty/8.1.15.v20140411/apidocs/org/eclipse/jetty/server/Server.html#Server(java.net.InetSocketAddress)
we first met this issue in Chronos. Pasted here.
We encountered this issue twice in about 3 months, generally we have about 25K jobs per day and the api server may doesn't response sometime. when this issue happen, curl -X -L :/ping will hang up for ever.
see also mesos/chronos#285
It's currently possible to pass a keystore to enable SSL, but once SSL is enabled it is still possible to access the same endpoints via HTTP. Chaos should allow enforcing SSL once it is enabled so HTTP connections are either redirected or refused to enforce encrypted connections.
Ideally this would support a standard apache htpasswd style file, which would also add the benefit of allowing multiple different user/password combinations to access the webapp such as marathon.
why the version 0.8.0+ request java 1.8
please update the new version of readme
The mesosphere marathon package for redhat logs via logger, which gets hoovered up into the systemd journal on RHEL/CentOS 7 or Fedora. It would be really nice to instead send this to a specific file in addition to the systemd journal.
Since marathon uses this library to do logging, the issue seems to be here and not in marathon directly. I've added this systemd service as a stopgap so we can use splunk to read marathon logs:
[Unit]
Description=Hack to log marathon logs to a file
After=network-online.target
Wants=network.target
[Service]
ExecStart=/bin/bash -c "/usr/bin/journalctl --quiet -lfu marathon >> /var/log/marathon/marathon.log"
Restart=always
RestartSec=1
[Install]
WantedBy=multi-user.target
And I've added Requires=marathon-logger.service
to the marathon systemd unit to start marathon-logger
on demand. Would it be possible to have chaos, and as a nice side effect, marathon support something like:
--log_level=info --log_file=/var/log/marathon/marathon.log
A simple logrotate config like this could be used so that chaos wouldn't natively need to rotate any logs:
/var/log/marathon/*.log {
daily
compress
missingok
rotate 30
notifempty
copytruncate
delaycompress
}
All Marathon instances currently proxy to the current leader. Marathon uses its own proxy implementation with various issues.
Jetty 9 includes support for proxying. Thus it would probably make sense to upgrade to Jetty 9 to benefit from this functionality.
Since this is functionality which would be useful to frameworks other than Marathon, I would include the proxy artifact in Chaos, potentially even some utility support to provide proxying to another host dynamically.
http://metrics.dropwizard.io/3.1.0/
I couldn't find the news article to link to indicating that dropwizard was picking up the metrics app from codahale. :(
Currently, if the "--http_credentials" parameter does not contain a colon char it will be logged, which may expose a password. This information should never be logged as part of reporting an invalid parameter.
After get rid of Guice DI, you replace JacksonMessageBodyProvider
by JsonProvider
, but the mapper of it only register DefaultScalaModule
, so, how to register customized restMapper in RestModule
/HttpModule
?
This helps with debugging
If a client requests an asset with Accept-Encoding: gzip
, Chaos should serve a gzipped version of the asset if one exists. Right now Chaos ignores the heading and always serves the uncompressed version.
It appears that Jetty supports serving gzipped assets by calling ResourceHandler.setMinGzipLength
with a value greater than 0. "1" seems like a reasonable value since every other value is equally arbitrary.
This is where the change looks like it should happen:
Edit: The above example was to the wrong "ResourceHandler". Jetty handles Gzip compression with its Gzip Filter.
It should be possible to set the --http_credentials, --ssl_keystore_password and --ssl_keystore_path secure flags via environment variables. There is a security issue with passing them in via command line flags as their values will be visible in the process list.
When hitting http://downloads.mesosphere.io/maven
I'm getting a 403
Hi,
I am trying to use Chronos, which depends on this particular project. Can you upload this artifact to Maven Central instead of using a proprietary Maven repo ?
There is a --http_address
option but no corresponding --https_address
option.
It would be nice to add this. Otherwise, https connections are always accepted on all interfaces.
hope to support the oauth2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.