/** * @param snapshotWorkingDir working directory to store lookups snapshot file, passing null or empty string will * disable the snapshot utility */ @JsonCreator public LookupConfig( @JsonProperty("snapshotWorkingDir") String snapshotWorkingDir ) { this.snapshotWorkingDir = StringUtils.nullToEmptyNonDruidDataString(snapshotWorkingDir); }
@Override public byte[] getCacheKey() { byte[] localeBytes = StringUtils.toUtf8(StringUtils.nullToEmptyNonDruidDataString(localeString)); return ByteBuffer.allocate(2 + localeBytes.length) .put(ExtractionCacheHelper.CACHE_TYPE_ID_UPPER) .put((byte) 0XFF) .put(localeBytes) .array(); } }
@Override public byte[] getCacheKey() { byte[] localeBytes = StringUtils.toUtf8(StringUtils.nullToEmptyNonDruidDataString(localeString)); return ByteBuffer.allocate(2 + localeBytes.length) .put(ExtractionCacheHelper.CACHE_TYPE_ID_LOWER) .put((byte) 0XFF) .put(localeBytes) .array(); } }
@Override public String toString() { final StringBuilder builder = new StringBuilder(); if (extractionFn != null) { builder.append(extractionFn).append("("); } builder.append(dimension); if (extractionFn != null) { builder.append(")"); } builder.append(" IN (") .append( Joiner.on(", ").join( Iterables.transform(values, input -> StringUtils.nullToEmptyNonDruidDataString(input)) ) ) .append(")"); return builder.toString(); }
public static void injectDruidProperties(Configuration configuration, List<String> listOfAllowedPrefix) { String mapJavaOpts = StringUtils.nullToEmptyNonDruidDataString(configuration.get(MRJobConfig.MAP_JAVA_OPTS)); String reduceJavaOpts = StringUtils.nullToEmptyNonDruidDataString(configuration.get(MRJobConfig.REDUCE_JAVA_OPTS)); for (String propName : System.getProperties().stringPropertyNames()) { for (String prefix : listOfAllowedPrefix) { if (propName.equals(prefix) || propName.startsWith(prefix + ".")) { mapJavaOpts = StringUtils.format("%s -D%s=%s", mapJavaOpts, propName, System.getProperty(propName)); reduceJavaOpts = StringUtils.format("%s -D%s=%s", reduceJavaOpts, propName, System.getProperty(propName)); break; } } } if (!Strings.isNullOrEmpty(mapJavaOpts)) { configuration.set(MRJobConfig.MAP_JAVA_OPTS, mapJavaOpts); } if (!Strings.isNullOrEmpty(reduceJavaOpts)) { configuration.set(MRJobConfig.REDUCE_JAVA_OPTS, reduceJavaOpts); } }
private static void addInputPath(Job job, Iterable<String> pathStrings, Class<? extends InputFormat> inputFormatClass) { Configuration conf = job.getConfiguration(); StringBuilder inputFormats = new StringBuilder( StringUtils.nullToEmptyNonDruidDataString(conf.get(MultipleInputs.DIR_FORMATS)) ); String[] paths = Iterables.toArray(pathStrings, String.class); for (int i = 0; i < paths.length - 1; i++) { if (inputFormats.length() > 0) { inputFormats.append(','); } inputFormats.append(paths[i]).append(';').append(inputFormatClass.getName()); } if (inputFormats.length() > 0) { conf.set(MultipleInputs.DIR_FORMATS, inputFormats.toString()); } // add last one separately for possible initialization in MultipleInputs MultipleInputs.addInputPath(job, new Path(paths[paths.length - 1]), inputFormatClass); }
@Override public void queryId(QueryType query) { setDimension(DruidMetrics.ID, StringUtils.nullToEmptyNonDruidDataString(query.getId())); }
@Override public byte[] getCacheKey() { byte[] dimensionBytes = StringUtils.toUtf8(dimension); byte[] dimExtractionFnBytes = Strings.isNullOrEmpty(name) ? getLookup().getCacheKey() : StringUtils.toUtf8(name); byte[] outputNameBytes = StringUtils.toUtf8(outputName); byte[] replaceWithBytes = StringUtils.toUtf8(StringUtils.nullToEmptyNonDruidDataString(replaceMissingValueWith)); return ByteBuffer.allocate(6 + dimensionBytes.length + outputNameBytes.length + dimExtractionFnBytes.length + replaceWithBytes.length) .put(CACHE_TYPE_ID) .put(dimensionBytes) .put(DimFilterUtils.STRING_SEPARATOR) .put(outputNameBytes) .put(DimFilterUtils.STRING_SEPARATOR) .put(dimExtractionFnBytes) .put(DimFilterUtils.STRING_SEPARATOR) .put(replaceWithBytes) .put(DimFilterUtils.STRING_SEPARATOR) .put(retainMissingValue ? (byte) 1 : (byte) 0) .array(); }
@Override public void configure(Binder binder) { String emitterType = props.getProperty(EMITTER_PROPERTY, ""); binder.install(new NoopEmitterModule()); binder.install(new LogEmitterModule()); binder.install(new HttpEmitterModule()); binder.install(new ParametrizedUriEmitterModule()); binder.install(new ComposingEmitterModule()); binder.bind(Emitter.class).toProvider(new EmitterProvider(emitterType)).in(LazySingleton.class); MapBinder<String, String> extraServiceDimensions = MapBinder.newMapBinder( binder, String.class, String.class, ExtraServiceDimensions.class ); String version = getClass().getPackage().getImplementationVersion(); extraServiceDimensions .addBinding("version") .toInstance(StringUtils.nullToEmptyNonDruidDataString(version)); // Version is null during `mvn test`. }
final Query query = requestLogLine.getQuery(); MDC.put("queryId", query.getId()); MDC.put("sqlQueryId", StringUtils.nullToEmptyNonDruidDataString(query.getSqlQueryId())); MDC.put("dataSource", findInnerDatasource(query).toString()); MDC.put("queryType", query.getType());
toolChest, baseQuery, StringUtils.nullToEmptyNonDruidDataString(remoteAddress) ); queryMetrics.success(success); baseQuery, DateTimes.utc(startMs), StringUtils.nullToEmptyNonDruidDataString(remoteAddress), new QueryStats(statsMap)
metricBuilder.setDimension("dataSource", plannerResult.datasourceNames().toString()); metricBuilder.setDimension("remoteAddress", StringUtils.nullToEmptyNonDruidDataString(remoteAddress)); metricBuilder.setDimension("success", String.valueOf(success)); emitter.emit(metricBuilder.build("sqlQuery/time", TimeUnit.NANOSECONDS.toMillis(queryTimeNs)));
final String urlFile = StringUtils.nullToEmptyNonDruidDataString(url.getFile()); final HttpRequest httpRequest = new DefaultHttpRequest( HttpVersion.HTTP_1_1,
/** * @param snapshotWorkingDir working directory to store lookups snapshot file, passing null or empty string will * disable the snapshot utility */ @JsonCreator public LookupConfig( @JsonProperty("snapshotWorkingDir") String snapshotWorkingDir ) { this.snapshotWorkingDir = StringUtils.nullToEmptyNonDruidDataString(snapshotWorkingDir); }
@Override public byte[] getCacheKey() { byte[] localeBytes = StringUtils.toUtf8(StringUtils.nullToEmptyNonDruidDataString(localeString)); return ByteBuffer.allocate(2 + localeBytes.length) .put(ExtractionCacheHelper.CACHE_TYPE_ID_LOWER) .put((byte) 0XFF) .put(localeBytes) .array(); } }
@Override public byte[] getCacheKey() { byte[] localeBytes = StringUtils.toUtf8(StringUtils.nullToEmptyNonDruidDataString(localeString)); return ByteBuffer.allocate(2 + localeBytes.length) .put(ExtractionCacheHelper.CACHE_TYPE_ID_UPPER) .put((byte) 0XFF) .put(localeBytes) .array(); } }
@Override public String toString() { final StringBuilder builder = new StringBuilder(); if (extractionFn != null) { builder.append(extractionFn).append("("); } builder.append(dimension); if (extractionFn != null) { builder.append(")"); } builder.append(" IN (") .append( Joiner.on(", ").join( Iterables.transform(values, input -> StringUtils.nullToEmptyNonDruidDataString(input)) ) ) .append(")"); return builder.toString(); }
public static void injectDruidProperties(Configuration configuration, List<String> listOfAllowedPrefix) { String mapJavaOpts = StringUtils.nullToEmptyNonDruidDataString(configuration.get(MRJobConfig.MAP_JAVA_OPTS)); String reduceJavaOpts = StringUtils.nullToEmptyNonDruidDataString(configuration.get(MRJobConfig.REDUCE_JAVA_OPTS)); for (String propName : System.getProperties().stringPropertyNames()) { for (String prefix : listOfAllowedPrefix) { if (propName.equals(prefix) || propName.startsWith(prefix + ".")) { mapJavaOpts = StringUtils.format("%s -D%s=%s", mapJavaOpts, propName, System.getProperty(propName)); reduceJavaOpts = StringUtils.format("%s -D%s=%s", reduceJavaOpts, propName, System.getProperty(propName)); break; } } } if (!Strings.isNullOrEmpty(mapJavaOpts)) { configuration.set(MRJobConfig.MAP_JAVA_OPTS, mapJavaOpts); } if (!Strings.isNullOrEmpty(reduceJavaOpts)) { configuration.set(MRJobConfig.REDUCE_JAVA_OPTS, reduceJavaOpts); } }
private static void addInputPath(Job job, Iterable<String> pathStrings, Class<? extends InputFormat> inputFormatClass) { Configuration conf = job.getConfiguration(); StringBuilder inputFormats = new StringBuilder( StringUtils.nullToEmptyNonDruidDataString(conf.get(MultipleInputs.DIR_FORMATS)) ); String[] paths = Iterables.toArray(pathStrings, String.class); for (int i = 0; i < paths.length - 1; i++) { if (inputFormats.length() > 0) { inputFormats.append(','); } inputFormats.append(paths[i]).append(';').append(inputFormatClass.getName()); } if (inputFormats.length() > 0) { conf.set(MultipleInputs.DIR_FORMATS, inputFormats.toString()); } // add last one separately for possible initialization in MultipleInputs MultipleInputs.addInputPath(job, new Path(paths[paths.length - 1]), inputFormatClass); }
@Override public void queryId(QueryType query) { setDimension(DruidMetrics.ID, StringUtils.nullToEmptyNonDruidDataString(query.getId())); }