1 /* 2 * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package jdk.jfr; 27 28 import java.lang.annotation.ElementType; 29 import java.lang.annotation.Inherited; 30 import java.lang.annotation.Retention; 31 import java.lang.annotation.RetentionPolicy; 32 import java.lang.annotation.Target; 33 34 /** 35 * Event annotation, specifies the default setting value for a periodic event. 36 * 37 * @since 9 38 */ 39 @MetadataDefinition 40 @Retention(RetentionPolicy.RUNTIME) 41 @Inherited 42 @Target(ElementType.TYPE) 43 public @interface Period { 44 /** 45 * Settings name {@code "period"} for configuring periodic events 46 */ 47 public final static String NAME = "period"; 48 49 /** 50 * Returns the default setting value for a periodic setting. 51 * <p> 52 * String representation of a positive {@code Long} value followed by an empty 53 * space and one of the following units:<br> 54 * <br> 55 * {@code "ns"} (nanoseconds)<br> 56 * {@code "us"} (microseconds)<br> 57 * {@code "ms"} (milliseconds)<br> 58 * {@code "s"} (seconds)<br> 59 * {@code "m"} (minutes)<br> 60 * {@code "h"} (hours)<br> 61 * {@code "d"} (days)<br> 62 * <p> 63 * Example values: {@code "0 ns"}, {@code "10 ms"}, and {@code "1 s"}. 64 * <p> 65 * A period may also bes <code>"everyChunk"</code> to specify that it occurs at 66 * least once for every recording file. The number of events that are emitted 67 * depends on how many times the file rotations occur when data is recorded. 68 * 69 * @return the default setting value, not {@code null} 70 */ 71 String value() default "everyChunk"; 72 }