0fe132c442933393504b242bb64bb82322b5e77e
[awesomized/libmemcached] / memcached / memcached_dtrace.d
1 /*
2 * Copyright (c) <2008>, Sun Microsystems, Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY SUN MICROSYSTEMS, INC. ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 provider memcached {
28 /**
29 * Fired when a connection object is allocated from the connection pool.
30 * @param connid the connection id
31 */
32 probe conn__allocate(int connid);
33
34 /**
35 * Fired when a connection object is released back to the connection pool.
36 * @param connid the connection id
37 */
38 probe conn__release(int connid);
39
40 /**
41 * Fired when a new connection object is created (there are no more
42 * connection objects in the connection pool).
43 * @param ptr pointer to the connection object
44 */
45 probe conn__create(void *ptr);
46
47 /**
48 * Fired when a connection object is destroyed ("released back to
49 * the memory subsystem").
50 * @param ptr pointer to the connection object
51 */
52 probe conn__destroy(void *ptr);
53
54 /**
55 * Fired when a connection is dispatched from the "main thread" to a
56 * worker thread.
57 * @param connid the connection id
58 * @param threadid the thread id
59 */
60 probe conn__dispatch(int connid, int threadid);
61
62 /**
63 * Allocate memory from the slab allocator.
64 * @param size the requested size
65 * @param slabclass the allocation will be fulfilled in this class
66 * @param slabsize the size of each item in this class
67 * @param ptr pointer to allocated memory
68 */
69 probe slabs__allocate(int size, int slabclass, int slabsize, void* ptr);
70
71 /**
72 * Failed to allocate memory (out of memory).
73 * @param size the requested size
74 * @param slabclass the class that failed to fulfill the request
75 */
76 probe slabs__allocate__failed(int size, int slabclass);
77
78 /**
79 * Fired when a slab class attempts to allocate more space.
80 * @param slabclass class that needs more memory
81 */
82 probe slabs__slabclass__allocate(int slabclass);
83
84 /**
85 * Failed to allocate memory (out of memory).
86 * @param slabclass the class that failed grab more memory
87 */
88 probe slabs__slabclass__allocate__failed(int slabclass);
89
90 /**
91 * Release memory.
92 * @param size the size of the memory
93 * @param slabclass the class the memory belongs to
94 * @param ptr pointer to the memory to release
95 */
96 probe slabs__free(int size, int slabclass, void* ptr);
97
98 /**
99 * Fired when the when we have searched the hash table for a named key.
100 * These two elements provide an insight in how well the hash function
101 * functions. Long traversals are a sign of a less optimal function,
102 * wasting cpu capacity.
103 *
104 * @param key the key searched for
105 * @param keylen length of the key
106 * @param depth the depth in the list of hash table
107 */
108 probe assoc__find(const char *key, int keylen, int depth);
109
110 /**
111 * Fired when a new item has been inserted.
112 * @param key the key just inserted
113 * @param keylen length of the key
114 * @param nokeys the total number of keys currently stored,
115 * including the key for which insert was called.
116 */
117 probe assoc__insert(const char *key, int keylen, int nokeys);
118
119 /**
120 * Fired when a new item has been removed.
121 * @param key the key just deleted
122 * @param keylen length of the key
123 * @param nokeys the total number of keys currently stored,
124 * excluding the key for which delete was called.
125 */
126 probe assoc__delete(const char *key, int keylen, int nokeys);
127
128 /**
129 * Fired when an item is linked into the cache.
130 * @param key the items key
131 * @param keylen length of the key
132 * @param size the size of the data
133 */
134 probe item__link(const char *key, int keylen, int size);
135
136 /**
137 * Fired when an item is deleted.
138 * @param key the items key
139 * @param keylen length of the key
140 * @param size the size of the data
141 */
142 probe item__unlink(const char *key, int keylen, int size);
143
144 /**
145 * Fired when the refcount for an item is reduced.
146 * @param key the items key
147 * @param keylen length of the key
148 * @param size the size of the data
149 */
150 probe item__remove(const char *key, int keylen, int size);
151
152 /**
153 * Fired when the "last refenced" time is updated.
154 * @param key the items key
155 * @param keylen length of the key
156 * @param size the size of the data
157 */
158 probe item__update(const char *key, int keylen, int size);
159
160 /**
161 * Fired when an item is replaced with another item.
162 * @param oldkey the key of the item to replace
163 * @param oldkeylen the length of the old key
164 * @param oldsize the size of the old item
165 * @param newkey the key of the new item
166 * @param newkeylen the length of the new key
167 * @param newsize the size of the new item
168 */
169 probe item__replace(const char *oldkey, int oldkeylen, int oldsize,
170 const char *newkey, int newkeylen, int newsize);
171
172 /**
173 * Fired when the processing of a command starts.
174 * @param connid the connection id
175 * @param request the incomming request
176 * @param size the size of the request
177 */
178 probe process__command__start(int connid, const void *request, int size);
179
180 /**
181 * Fired when the processing of a command is done.
182 * @param connid the connection id
183 * @param respnse the response to send back to the client
184 * @param size the size of the response
185 */
186 probe process__command__end(int connid, const void *response, int size);
187
188 /**
189 * Fired for a get-command
190 * @param connid connection id
191 * @param key requested key
192 * @param keylen length of the key
193 * @param size size of the key's data (or signed int -1 if not found)
194 * @param casid the casid for the item
195 */
196 probe command__get(int connid, const char *key, int keylen, int size, int64_t casid);
197
198 /**
199 * Fired for an add-command.
200 * @param connid connection id
201 * @param key requested key
202 * @param keylen length of the key
203 * @param size the new size of the key's data (or signed int -1 if
204 * not found)
205 * @param casid the casid for the item
206 */
207 probe command__add(int connid, const char *key, int keylen, int size, int64_t casid);
208
209 /**
210 * Fired for a set-command.
211 * @param connid connection id
212 * @param key requested key
213 * @param keylen length of the key
214 * @param size the new size of the key's data (or signed int -1 if
215 * not found)
216 * @param casid the casid for the item
217 */
218 probe command__set(int connid, const char *key, int keylen, int size, int64_t casid);
219
220 /**
221 * Fired for a replace-command.
222 * @param connid connection id
223 * @param key requested key
224 * @param keylen length of the key
225 * @param size the new size of the key's data (or signed int -1 if
226 * not found)
227 * @param casid the casid for the item
228 */
229 probe command__replace(int connid, const char *key, int keylen, int size, int64_t casid);
230
231 /**
232 * Fired for a prepend-command.
233 * @param connid connection id
234 * @param key requested key
235 * @param keylen length of the key
236 * @param size the new size of the key's data (or signed int -1 if
237 * not found)
238 * @param casid the casid for the item
239 */
240 probe command__prepend(int connid, const char *key, int keylen, int size, int64_t casid);
241
242 /**
243 * Fired for an append-command.
244 * @param connid connection id
245 * @param key requested key
246 * @param keylen length of the key
247 * @param size the new size of the key's data (or signed int -1 if
248 * not found)
249 * @param casid the casid for the item
250 */
251 probe command__append(int connid, const char *key, int keylen, int size, int64_t casid);
252
253 /**
254 * Fired for an touch-command.
255 * @param connid connection id
256 * @param key requested key
257 * @param keylen length of the key
258 * @param size the new size of the key's data (or signed int -1 if
259 * not found)
260 * @param casid the casid for the item
261 */
262 probe command__touch(int connid, const char *key, int keylen, int size, int64_t casid);
263
264 /**
265 * Fired for a cas-command.
266 * @param connid connection id
267 * @param key requested key
268 * @param keylen length of the key
269 * @param size size of the key's data (or signed int -1 if not found)
270 * @param casid the cas id requested
271 */
272 probe command__cas(int connid, const char *key, int keylen, int size, int64_t casid);
273
274 /**
275 * Fired for an incr command.
276 * @param connid connection id
277 * @param key the requested key
278 * @param keylen length of the key
279 * @param val the new value
280 */
281 probe command__incr(int connid, const char *key, int keylen, int64_t val);
282
283 /**
284 * Fired for a decr command.
285 * @param connid connection id
286 * @param key the requested key
287 * @param keylen length of the key
288 * @param val the new value
289 */
290 probe command__decr(int connid, const char *key, int keylen, int64_t val);
291
292 /**
293 * Fired for a delete command.
294 * @param connid connection id
295 * @param key the requested key
296 * @param keylen length of the key
297 */
298 probe command__delete(int connid, const char *key, int keylen);
299
300 };
301
302 #pragma D attributes Unstable/Unstable/Common provider memcached provider
303 #pragma D attributes Private/Private/Common provider memcached module
304 #pragma D attributes Private/Private/Common provider memcached function
305 #pragma D attributes Unstable/Unstable/Common provider memcached name
306 #pragma D attributes Unstable/Unstable/Common provider memcached args