public String getDataSourceName ( String typeName , String attributeName , List < String > valuePath ) { String result ; String entry = StringUtils . join ( valuePath , ' ' ) ; if ( typeName != null ) { result = typeName + attributeName + entry ; } else { result = attributeName + entry ; } if ( attributeName . length ( ) > 15 ) { String [ ] split = StringUtils . splitByCharacterTypeCamelCase ( attributeName ) ; String join = StringUtils . join ( split , ' ' ) ; attributeName = WordUtils . initials ( join , INITIALS ) ; } result = attributeName + DigestUtils . md5Hex ( result ) ; result = StringUtils . left ( result , 19 ) ; return result ; }
rrd datasources must be less than 21 characters in length so work to make it shorter . Not ideal at all but works fairly well it seems .