/*
* Copyright © 2014-2015 Cask Data, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package co.cask.cdap.internal.app.program;
import co.cask.cdap.common.conf.Constants;
import co.cask.cdap.proto.ProgramType;
/**
* Helper class for getting the program type id to use when emitting metrics.
*/
public final class ProgramTypeMetricTag {
/**
* Metric contexts are of the form {applicationId}.{programType}.{programId}.{optionalComponentId},
* where programType is some string.
*
* @return id of the program type for use in metrics contexts.
*/
public static String getTagName(ProgramType programType) {
switch (programType) {
case FLOW:
return Constants.Metrics.Tag.FLOW;
case MAPREDUCE:
return Constants.Metrics.Tag.MAPREDUCE;
case WORKFLOW:
return Constants.Metrics.Tag.WORKFLOW;
case SPARK:
return Constants.Metrics.Tag.SPARK;
case SERVICE:
return Constants.Metrics.Tag.SERVICE;
case WORKER:
return Constants.Metrics.Tag.WORKER;
default:
return "program";
}
}
}