Skip to content

Instantly share code, notes, and snippets.

Working from home

Jon Schneider jkschneider

Working from home
Block or report user

Report or block jkschneider

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
WebClient client = WebClient.builder()
.baseUrl("http://" + args[0])
.generate(AtomicLong::new, (state, sink) -> {
long i = state.getAndIncrement();;
return state;
jkschneider /
Last active Oct 10, 2019
Spring Boot configuration to wire Spinnaker K8S v2 Provider annotations to Micrometer for use in Kayenta
public class PaneraMetricsAutoConfiguration {
private final Logger logger = LoggerFactory.getLogger(PaneraMetricsAutoConfiguration.class);
private String appName;
private String host;
jkschneider /
Created Sep 19, 2019
Classes of dependency problems

API utilization

Guava famously deprecates in one minor release and removes deprecations in the next, but it isn't uncommon to see Guava version divergences greater than two minor releases in a large dependency graph in application code. Latest or nearest version conflict resolution both lead to breaking consequences because different parts of the dependency graph make different assumptions.

Semantic incompatibility leads to a similar problem as the Guava problem.

Developers on core libraries or organization-wide curators of third-party dependencies may wish to peek at API utilization to determine the impact of an impending change.

Security teams may wish to peek at API utilization to determine where known vulnerable methods are in use.

jkschneider / spinnaker-local.yml
Created Jun 7, 2019
Spinnaker config with CloudFoundry, Jenkins, Artifactory
View spinnaker-local.yml
# This file is intended to serve as a master configuration for a Spinnaker
# deployment. Customizations to the deployment should be made in another file
# named "spinnaker-local.yml". The distribution has a prototype called
# "default-spinnaker-local.yml" which calls out the subset of attributes of
# general interest. It can be copied into a "spinnaker-local.yml" to start
# with. The prototype does not change any of the default values here, it just
# surfaces the more critical attributes.
View app.json
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
jkschneider / metricsdemo-atherton.yml
Last active Apr 3, 2019
A series of manifests for testing Spinnaker CF integration.
View metricsdemo-atherton.yml
- name: metricsdemo
- route:
jkschneider / build.gradle
Created Mar 7, 2019
Gradle publishing to artifactory
View build.gradle
plugins {
id 'java'
id 'com.jfrog.artifactory' version '4.9.0'
id 'org.springframework.boot' version '2.1.3.RELEASE'
id 'io.spring.dependency-management' version '1.0.7.RELEASE'
id 'nebula.maven-publish' version '9.5.0'
id 'nebula.release' version '9.2.0'
id '' version '5.0.0'
jkschneider /
Created Feb 15, 2019
How to send StatsD metrics over AMQP
StatsdMeterRegistry statsdMeterRegistry(StatsdConfig config) {
return StatsdMeterRegistry.builder(config)
.lineSink(line -> {
// send this line to AMQP with your broker's client library
jkschneider /
Created Jan 30, 2019
Wiring for Datadog in Spring MVC
MeterRegistry registry() {
MeterRegistry registry = new DatadogMeterRegistry(new DatadogConfig() {
public String apiKey() {
return "";
public String applicationKey() {
View spinnaker-test-times.json
{"name":"tests","children":[{"name":"clouddriver-google-common","children":[{"name":"","children":[{"name":"should retry on certain error codes[0]","size":727},{"name":"should retry on certain error codes[1]","size":0},{"name":"should retry on certain error codes[2]","size":1},{"name":"should retry on certain error codes[3]","size":1},{"name":"should retry on certain error codes[4]","size":1},{"name":"no_retry","size":1094},{"name":"retry_until_success","size":257},{"name":"retry_until_exhausted","size":22},{"name":"retry_until_404_ok","size":10},{"name":"retry_until_404_not_ok","size":7}]}]},{"name":"clouddriver-security","children":[{"name":"","children":[{"name":"should call repo to retrieve objects","size":772}]},{"name":"","children":[{"name":"should reject if allowed acc
You can’t perform that action at this time.