11---
22services :
33 fiftyone-app-common :
4- image : voxel51/fiftyone-app:v2.18.1
4+ image : voxel51/fiftyone-app:v2.19.0
55 environment :
66 API_URL : ${API_URL}
77 FIFTYONE_APP_DEFAULT_QUERY_PERFORMANCE : ${FIFTYONE_APP_DEFAULT_QUERY_PERFORMANCE}
@@ -17,6 +17,7 @@ services:
1717 FIFTYONE_MEDIA_CACHE_APP_IMAGES : false
1818 FIFTYONE_MEDIA_CACHE_SIZE_BYTES : -1
1919 FIFTYONE_SIGNED_URL_EXPIRATION : ${FIFTYONE_SIGNED_URL_EXPIRATION:-24}
20+ FIFTYONE_TELEMETRY_REDIS_URL : ${FIFTYONE_TELEMETRY_REDIS_URL:-redis://telemetry-redis:6379}
2021 # If you are routing through a proxy server you will want to set
2122 # HTTP_PROXY_URL, HTTPS_PROXY_URL, and NO_PROXY_LIST in your .env
2223 # then add the following environment variables to your
@@ -32,7 +33,7 @@ services:
3233 restart : always
3334
3435 teams-api-common :
35- image : voxel51/fiftyone-teams-api:v2.18.1
36+ image : voxel51/fiftyone-teams-api:v2.19.0
3637 environment :
3738 API_EXTERNAL_URL : ${FIFTYONE_API_URI}
3839 CAS_BASE_URL : ${CAS_BASE_URL:-http://teams-cas:3000/cas/api}
@@ -43,6 +44,7 @@ services:
4344 FIFTYONE_ENV : ${FIFTYONE_ENV}
4445 FIFTYONE_INTERNAL_SERVICE : true
4546 FIFTYONE_LOGGING_FORMAT : ${FIFTYONE_LOGGING_FORMAT:-text}
47+ FIFTYONE_TELEMETRY_REDIS_URL : ${FIFTYONE_TELEMETRY_REDIS_URL:-redis://telemetry-redis:6379}
4648 GRAPHQL_DEFAULT_LIMIT : ${GRAPHQL_DEFAULT_LIMIT}
4749 LOGGING_LEVEL : ${API_LOGGING_LEVEL:-INFO}
4850 MONGO_DEFAULT_DB : ${FIFTYONE_DATABASE_NAME}
@@ -61,17 +63,18 @@ services:
6163 restart : always
6264
6365 teams-app-common :
64- image : voxel51/fiftyone-teams-app:v2.18.1
66+ image : voxel51/fiftyone-teams-app:v2.19.0
6567 environment :
6668 API_URL : ${API_URL}
6769 APP_USE_HTTPS : ${APP_USE_HTTPS:-true}
6870 FIFTYONE_API_URI : ${FIFTYONE_API_URI:-"Please contact your Admin for an API URI"}
6971 FIFTYONE_APP_ALLOW_MEDIA_EXPORT : ${FIFTYONE_APP_ALLOW_MEDIA_EXPORT:-true}
70- FIFTYONE_APP_TEAMS_SDK_RECOMMENDED_VERSION : 2.18.1
72+ FIFTYONE_APP_TEAMS_SDK_RECOMMENDED_VERSION : 2.19.0
7173 FIFTYONE_AUTH_SECRET : ${FIFTYONE_AUTH_SECRET}
7274 FIFTYONE_SERVER_ADDRESS : " "
7375 FIFTYONE_SERVER_PATH_PREFIX : /api/proxy/fiftyone-teams
7476 FIFTYONE_TEAMS_PROXY_URL : ${FIFTYONE_TEAMS_PROXY_URL}
77+ FIFTYONE_TELEMETRY_REDIS_URL : ${FIFTYONE_TELEMETRY_REDIS_URL:-redis://telemetry-redis:6379}
7578 NODE_ENV : production
7679 RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED : false
7780 FIFTYONE_APP_ANONYMOUS_ANALYTICS_ENABLED : ${FIFTYONE_APP_ANONYMOUS_ANALYTICS_ENABLED:-true}
@@ -95,7 +98,7 @@ services:
9598 restart : always
9699
97100 teams-cas-common :
98- image : voxel51/fiftyone-teams-cas:v2.18.1
101+ image : voxel51/fiftyone-teams-cas:v2.19.0
99102 environment :
100103 CAS_DATABASE_NAME : ${CAS_DATABASE_NAME:-cas}
101104 CAS_DEFAULT_USER_ROLE : ${CAS_DEFAULT_USER_ROLE:-GUEST}
@@ -130,7 +133,7 @@ services:
130133 read_only : true
131134
132135 teams-plugins-common :
133- image : voxel51/fiftyone-app-torch:v2.18.1
136+ image : voxel51/fiftyone-app-torch:v2.19.0
134137 environment :
135138 API_URL : ${API_URL}
136139 FIFTYONE_AUTH_SECRET : ${FIFTYONE_AUTH_SECRET}
@@ -144,6 +147,7 @@ services:
144147 FIFTYONE_MEDIA_CACHE_APP_IMAGES : false
145148 FIFTYONE_MEDIA_CACHE_SIZE_BYTES : -1
146149 FIFTYONE_PLUGINS_DIR : /opt/plugins
150+ FIFTYONE_TELEMETRY_REDIS_URL : ${FIFTYONE_TELEMETRY_REDIS_URL:-redis://telemetry-redis:6379}
147151 # If you are routing through a proxy server you will want to set
148152 # HTTP_PROXY_URL, HTTPS_PROXY_URL, and NO_PROXY_LIST in your .env
149153 # then add the following environment variables to your
@@ -157,9 +161,13 @@ services:
157161 restart : always
158162
159163 teams-do-common :
160- image : voxel51/fiftyone-teams-cv-full:v2.18.1
164+ image : voxel51/fiftyone-teams-cv-full:v2.19.0
165+ # Telemetry default-on requires teams-do to share its PID namespace
166+ # with a single sidecar (compose's `pid: "service:<name>"` only joins
167+ # one replica). Force replicas=1 to keep the 1:1 pairing deterministic.
168+ # See docker/docs/configuring-telemetry.md for multi-worker patterns.
161169 deploy :
162- replicas : ${FIFTYONE_DELEGATED_OPERATOR_WORKER_REPLICAS:-3}
170+ replicas : 1
163171 command : >
164172 /bin/sh -c "fiftyone delegated launch -t remote -m"
165173 environment :
@@ -171,6 +179,144 @@ services:
171179 FIFTYONE_INTERNAL_SERVICE : true
172180 FIFTYONE_MEDIA_CACHE_SIZE_BYTES : -1
173181 FIFTYONE_PLUGINS_DIR : /opt/plugins
182+ FIFTYONE_TELEMETRY_REDIS_URL : ${FIFTYONE_TELEMETRY_REDIS_URL:-redis://telemetry-redis:6379}
183+ TELEMETRY_SOCKET : /tmp/telemetry/agent.sock
174184 restart : always
175185 volumes :
176186 - plugins-vol:/opt/plugins:ro
187+ - telemetry-socket:/tmp/telemetry
188+
189+ telemetry-redis-common :
190+ image : ${TELEMETRY_REDIS_IMAGE:-redis:7-alpine}
191+ command :
192+ - redis-server
193+ - --save
194+ - " 60"
195+ - " 1"
196+ - --dir
197+ - /data
198+ - --maxmemory
199+ - ${TELEMETRY_REDIS_MAXMEMORY:-400mb}
200+ - --maxmemory-policy
201+ - allkeys-lru
202+ restart : always
203+ deploy :
204+ resources :
205+ limits :
206+ cpus : " 0.25"
207+ memory : 512M
208+ reservations :
209+ cpus : " 0.10"
210+ memory : 256M
211+ volumes :
212+ - telemetry-redis-data:/data
213+
214+ # One sidecar per observed service. `pid: "service:<target>"` joins the
215+ # target's PID namespace so the sidecar can read /proc/<pid>/fd/1 and
216+ # psutil can see the target's process.
217+ fiftyone-app-telemetry-common :
218+ image : voxel51/telemetry-sidecar:v2.19.0
219+ pid : " service:fiftyone-app"
220+ # Matches the workload image's USER 1000:1000 so the kernel's
221+ # ptrace_may_access() check on /proc/<workload-pid>/fd/1 reads passes via the
222+ # same-UID fast path to allow for log tailing
223+ user : " 1000:1000"
224+ cap_drop :
225+ - ALL
226+ security_opt :
227+ - no-new-privileges:true
228+ environment :
229+ POD_NAME : fiftyone-app
230+ POD_NAMESPACE : ${TELEMETRY_NAMESPACE:-docker}
231+ SERVICE_TYPE : fiftyone-app
232+ TARGET_NAME : ${FIFTYONE_APP_TARGET_NAME:-hypercorn}
233+ FIFTYONE_TELEMETRY_REDIS_URL : ${FIFTYONE_TELEMETRY_REDIS_URL:-redis://telemetry-redis:6379}
234+ deploy :
235+ resources :
236+ limits :
237+ cpus : " 0.10"
238+ memory : 512M
239+ reservations :
240+ cpus : " 0.10"
241+ memory : 512M
242+ restart : always
243+
244+ teams-api-telemetry-common :
245+ image : voxel51/telemetry-sidecar:v2.19.0
246+ pid : " service:teams-api"
247+ user : " 1000:1000"
248+ cap_drop :
249+ - ALL
250+ security_opt :
251+ - no-new-privileges:true
252+ environment :
253+ POD_NAME : teams-api
254+ POD_NAMESPACE : ${TELEMETRY_NAMESPACE:-docker}
255+ SERVICE_TYPE : teams-api
256+ TARGET_NAME : ${TEAMS_API_TARGET_NAME:-fiftyone-teams-api}
257+ FIFTYONE_TELEMETRY_REDIS_URL : ${FIFTYONE_TELEMETRY_REDIS_URL:-redis://telemetry-redis:6379}
258+ deploy :
259+ resources :
260+ limits :
261+ cpus : " 0.10"
262+ memory : 512M
263+ reservations :
264+ cpus : " 0.10"
265+ memory : 512M
266+ restart : always
267+
268+ teams-plugins-telemetry-common :
269+ image : voxel51/telemetry-sidecar:v2.19.0
270+ pid : " service:teams-plugins"
271+ user : " 1000:1000"
272+ cap_drop :
273+ - ALL
274+ security_opt :
275+ - no-new-privileges:true
276+ environment :
277+ POD_NAME : teams-plugins
278+ POD_NAMESPACE : ${TELEMETRY_NAMESPACE:-docker}
279+ SERVICE_TYPE : teams-plugins
280+ TARGET_NAME : ${TEAMS_PLUGINS_TARGET_NAME:-hypercorn}
281+ FIFTYONE_TELEMETRY_REDIS_URL : ${FIFTYONE_TELEMETRY_REDIS_URL:-redis://telemetry-redis:6379}
282+ deploy :
283+ resources :
284+ limits :
285+ cpus : " 0.10"
286+ memory : 512M
287+ reservations :
288+ cpus : " 0.10"
289+ memory : 512M
290+ restart : always
291+
292+ teams-do-telemetry-common :
293+ image : voxel51/telemetry-sidecar:v2.19.0
294+ pid : " service:teams-do"
295+ user : " 1000:1000"
296+ cap_drop :
297+ - ALL
298+ cap_add :
299+ - SYS_PTRACE # allows for additional profiling metrics (sampled stacks via py-spy)
300+ security_opt :
301+ - no-new-privileges:true
302+ environment :
303+ POD_NAME : teams-do
304+ POD_NAMESPACE : ${TELEMETRY_NAMESPACE:-docker}
305+ SERVICE_TYPE : delegated-operator
306+ TARGET_NAME : ${TEAMS_DO_TARGET_NAME:-fiftyone delegated}
307+ EXECUTOR_SIDECAR : " true"
308+ TELEMETRY_SOCKET : /tmp/telemetry/agent.sock
309+ FIFTYONE_TELEMETRY_REDIS_URL : ${FIFTYONE_TELEMETRY_REDIS_URL:-redis://telemetry-redis:6379}
310+ FIFTYONE_DATABASE_URI : ${FIFTYONE_DATABASE_URI}
311+ FIFTYONE_DATABASE_NAME : ${FIFTYONE_DATABASE_NAME}
312+ deploy :
313+ resources :
314+ limits :
315+ cpus : " 0.10"
316+ memory : 512M
317+ reservations :
318+ cpus : " 0.10"
319+ memory : 512M
320+ volumes :
321+ - telemetry-socket:/tmp/telemetry
322+ restart : always
0 commit comments