Podłączyłem pliki wersji estats 4.9.60 do bazy estats 4.9.22 - poniżej problemy które się pojawiły:

dla strony /index.php?vars=pl/general wyskakuje błąd(strona "ładuje się" biała):

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 66 bytes) in /home/users/estats-test/public_html/plugins/drivers/MySQL/plugin.php on line 581

część podstron z grupy /index.php?vars=pl/general też się nie ładuje

/index.php?vars=pl/visits - ładowanie tej strony i kolejnych podstron zajmuje 65sek., poniżej część zapytania MySQL które tak długo się wykonuje:

SELECT DISTINCT `visitors`.*, `details`.`id` AS `details` FROM `estats_website_visitors` LEFT JOIN `estats_website_details` AS `details` USING(`id`) WHERE (`robot` = '' OR `robot` = '0') AND `visitors`.`id` IN ('367973', '367972',  '367971',  '367970' ...

Reszta stron wygląda że działa poprawnie, ale nie powyższe które nie działają są jednak najważniejsze, najczęściej wykorzystywane.

Aha..  nie działa też nadal robienie buckupów index.php?vars=pl/tools/backups - po kliknięciu żeby wykonać kopie po chwili wyskakuje:

Fatal error: Maximum execution time of 30 seconds exceeded in /home/users/estats-test/public_html/lib/backups.class.php on line 119


Wygląda na to że chyba baza statystyk tak się rozrosła(backup ma 455MB) że estats nie może załadować jej danych.
Poniżej jeszcze screenshot jak wygląda zapełnienie bazy statystyk - ile jest rekordów w tabelach i ile ważą.

http://itspec.net/temp/estats-screenshot.png

Witam,
niestety samo skopiowanie nowych plików nie pomaga żeby zaktualizować estats z wersji 4.9.22 do 4.9.60.
Na początku nie łączyło z bazą.
Potem gdy ręcznie poprawiłem plik konfiguracyjny config.php połączyło z bazą, ale większość podstron estats nie działało.
Na razie przywróciłem poprzednią wersję z backupu, ale jak zaktualizować poprawnie do 4.9.60?

Dane konfiguracyjne estats to:

Wersja eStats: 4.9.22 - stable (01.08.2009 12:29:08);

Moduł bazy danych: eStats MySQL v3.0.09 - stable (28.09.2008 15:36:43);

Baza danych: MySQL;

Wersja PHP: 5.2.16-0+tld0;

Załadowane rozszerzenia PHP: PDO, PDO_ODBC, Reflection, SPL, SQLite, SimpleXML, Zend Optimizer, apache2handler, bcmath, bz2, calendar, ctype, curl, date, dba, dbase, dio, dom, eAccelerator, exif, filter, ftp, gd, gettext, hash, iconv, imagick, imap, ionCube Loader, json, libxml, mbstring, mcrypt, mhash, mime_magic, mysql, mysqli, odbc, openssl, pcre, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, posix, pspell, session, shmop, soap, sockets, standard, suhosin, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlwriter, xsl, zip, zlib;

Tryb bezpieczny PHP: N/A;

Oprogramowanie serwera: Apache;

Moduły Apache: core, http_core, mod_actions, mod_alias, mod_asis, mod_auth_basic, mod_authn_file, mod_authz_default, mod_authz_groupfile, mod_authz_host, mod_authz_user, mod_autoindex, mod_cern_meta, mod_cgi, mod_dir, mod_env, mod_expires, mod_headers, mod_include, mod_log_config, mod_logio, mod_mime, mod_mime_magic, mod_negotiation, mod_php5, mod_rewrite, mod_setenv, mod_setenvif, mod_so, mod_speling, mod_ssl, mod_status, mod_tld_stat, mod_vhost_alias, prefork;

System operacyjny: Linux;

Nazwa hostingu: VPS Luna z KEI.PL

3

(8 odpowiedzi, napisanych Propozycje zmian)

IMO najlepiej było by przechowywać to lokalne ip w tej samej kolumnie (ip w tabeli *_visitors) co publiczne czyli z tym separatorem
wystarczyło by zmienić VARCHAR(20) na VARCHAR(31)
i było by np.:
123.123.123.123-192.168.1.102

Tam gdzie by nie wykryło lokalnego IP bo np. Java lub JS było by zablokowane wtedy nie dodawało by separatora,
tak było by chyba najbardziej oszczędnie dla serwera, nie trzeba by było zmieniać niczego w strukturze bazy i gdyby była to opcja to nie marnowało by zasobów tam gdzie nie ma tego włączonego.

PS. czy estats będą miały wsparcie dla zbliżającego się wielkimi krokami IPv6?

4

(8 odpowiedzi, napisanych Propozycje zmian)

W sprawie IP lokalnego to niestety z tego co mi wiadomo można to tylko przez javę zrobić,
ale można to połączyć z zbieraniem danych przez javascript:

zamiast:

<script type="text/javascript">
var eCount = 0;
var ePath = '/estats/';
var eTitle = '';
var eAddress = '';
var eAntipixel = '';
</script>
<script type="text/javascript" src="/estats/stats.js"></script>

można dać:

<APPLET CODE="MyAddress.class" NAME="internaljava" MAYSCRIPT WIDTH=2 HEIGHT=2></APPLET>
<script type="text/javascript">
var eCount = 0;
var ePath = '/estats/';
var eTitle = '';
var eAddress = '';
var eAntipixel = '';
var eLocalip = document.internaljava.ip();
</script>
<script type="text/javascript" src="/estats/stats.js"></script>

plus w stats.js dodać do generowanego antypixela jedną zmienną:

+ '&javalip=' + eLocalip

5

(8 odpowiedzi, napisanych Propozycje zmian)

Emdek napisał/a:
sacud napisał/a:

-prostsza wersja backupu bazy statystyk(teraz niewiem czemu nie da rady tego backupu wykonać :/)

Tzn. w jakim sensie prostsza?

Teraz w ogóle nie działa, chodzi o taką żeby działała :)

Aktualnie na stronie "Administracja - Kopie zapasowe" wyrzuca na górze strony błąd:

Debugowanie (1):
#1 Notice (/home/users/www0/public_html/www0/estats/pages/admin/backups.php:70)
Undefined index: sqlformat

Natomiast po kliknięciu przycisku "Utwórz kopię zapasową" po chwili wyświetla się biała strona a w logach serwera wywala błąd:

PHP Fatal error:  Out of memory (allocated 43515904) (tried to allocate 41156541 bytes) in /home/users/www0/public_html/www0/estats/lib/db/MySQL/common.php on line 176, referer: http://www.www0.pl/estats/index.php?var … in/backups

Ile pamięci jest potrzebne żeby obsłużyć ten backup? Sama baza estats ma ok. 523MB.



Emdek napisał/a:
Kobra napisał/a:
sacud napisał/a:

-wyświetlanie w szczegółowych oprócz publicznego adresu IP też dodatkowo wewnętrznego IP: http://reglos.de/myaddress/MyAddress.html

Java? Oj, wątpię żeby to był dobry pomysł, zważywszy na mulistość właśnie... Może opcjonalnie, jako dodatek?

To chyba zbytnie szpiegostwo jak na wbudowaną rzecz. ;-)

Niekoniecznie ;) Jeśli jest grupa userów która łączy się ze stroną z tej samej sieci w której jest jedno publiczne IP a wszyscy są za NATem to nawet jeśli będzie kilka wizyt z różnych PCtów to będzie zliczało w estats jako jednego usera niestety :/ Mam taki przypadek i jeśli by było w szczegółowych też IP wewnętrzne to by pomogło dużo. Chodzi tu o to żeby rozdzielało te wizyty wewnątrz sieci i pokazywało je jako osobnych userów. Wiadomo że dla większości stron będzie to mało przydatne, ale jeśli ze strony korzysta duża grupa osób z jednej sieci wtedy było by to pomocne. Czy jest szansa na taką wtyczkę do estats?

Witam,
proponuję dodanie do eStats poniższych funkcjonalności:
-wyszukiwanie wizyt po adresach IP/dacie/adresie strony/ilości wizyt w zakładce szczegółowych wizyt (czasami przydaje się wyszukać poszczególne wizyty, a tak by bylo szybciej niż aktualnie bezpośrednio przez bazę)
-kasowanie z bazy starych danych szczegółowych wizyt np. starszych niż 3 miesiące, zostawione zostały by tylko ogólne dane do posumowań miesięcznych/rocznych (baza statystyk aktualnie robi się za duża i zaczyna zamulać...)
-wyświetlanie w szczegółowych oprócz publicznego adresu IP też dodatkowo wewnętrznego IP: http://reglos.de/myaddress/MyAddress.html
-HeatClick / HeatMaps / clickMapa  - to tylko tak przypominająco, pisałem o tym wcześniej smile
-prostsza wersja backupu bazy statystyk(teraz niewiem czemu nie da rady tego backupu wykonać hmm)
-obsługa przez statystyki subdomen/kilku stron, ktoś już też o tym pisał smile

Czy jest szansa że takie zmiany będą w najbliższej przyszłości w 5 wersji eStats? smile

Już się zorientowałem, że te boty były ukryte  smile
16:00 mi pasuje, napiszę do Ciebie na gg

Emdek napisał/a:

Co do braku CSS / obrazków, to wynika to najprawdopodobniej z nietypowego definiowania ścieżek w przypadku używania tej formy adresu.

Z tego co widzę, to ścieżki do cssa, obrazków i jeszcze niektórych rzeczy są tworzone na podstawie adresu, a może by tak zrobić je statyczne, a początek adresu pobierać np. ze zmiennej z bazy danych(ustalana przy instalacji sktyptu, w konfiguracji)

Emdek napisał/a:

Poza nieestetycznym wyglądem nie ma jednak żadnych negatywnych skutków[...]

No nie ma, ale to niedogodność, w statystykach zauważyłem też dziwne linki:

http://sklady-meblowe.com/index.php?vars=pl/general
http://sklady-meblowe.com/index.php?vars=pl/general/keywords
http://sklady-meblowe.com/index.php?vars=pl/general/referrers
http://sklady-meblowe.com/index.php?vars=pl/technical/oses/0-0-0-0
http://sklady-meblowe.com/index.php?vars=pl/general/hosts
Emdek napisał/a:

Co do błędu 500 to [..] są bardzo duże szanse na namierzenie przyczyny za pomocą zastawiania pułapek w kodzie, tyle, że wymagałoby to Twojego aktywnego udziału i w przypadku pecha może zająć nawet godzinę (w końcu jest już trochę tego kodu do zastawiania tych pułapek ;-)).

Nie ma sprawy, tylko kiedy? Może się znajdzie przy okazji jeszcze jakieś inne błędy.

Emdek napisał/a:

Co do geolokalizacji, to idealnym rozwiązaniem byłoby nakłonienie administratora do zainstalowania modułu, przekonując go, że właściwie zerowym kosztem znacząco zwiększy atrakcyjność oferty ;-).

Zobaczymy... może się uda. Ale to raczej potrwa, sami administratorzy nie mogą podobno podjąć takiej decyzji... sprawa czeka na rozpatrzenie przez "osoby decyzyjne" w firmie home.pl

PS: Zainstalowałem poprawkę 4.9.10, na stronie głównej statystyk nadal pole "Najwięcej:" nie działa poprawnie, teraz jest równe "4", nawet jak Online jest >4, co oznacza to pole? Najwięcej odwiedzin w ciągu dnia, czy najwięcej osób online?

@Kobra: dzięki wielkie, już działa, teraz zostały jeszcze tylko te dwa małe błędy, poczekam na Emdeka.

Mam jeszce jedno dodatkowe pytanie, chcę zainstalować geolokalizację, ale udostępniony skrypt generuje bazę SQLite, a na home.pl jest MySQL..., czy będzie udostępniony taki skrypt generujący bazę MySQL?

Kobra napisał/a:

@1:
[...]
Popraw (jest błąd) na

<script type="text/javascript">
var eCount = 0;
var ePath = '/estats/';
var eTitle = '<?php include ("tytul_sk_t.php") ?>'; // opcjonalnie
</script>

Poprawiłem i nadal nie dział

Witam,
zainstalowałem dzisiaj eStats 4.9.09 i mam parę małych problemów:

1) Nie pobierają mi się dane techniczne pobierane przez JS. Kod wklejony na stronę to:

<?php
$tytul_sk_t_utf=iconv("ISO-8859-2","UTF-8", $tytul_sk_t);
define ('ESTATS_COUNT', 1);
define ('ESTATS_TITLE', $tytul_sk_t_utf); // opcjonalnie
@include ('estats/stats.php');
?>
<noscript>
<a href="http://estats.emdek.cba.pl/">
<img src="estats/antipixel.php?count=0" alt="eStats" title="eStats" />
</a>
</noscript>
<script type="text/javascript">
var eCount = 0;
var ePath = estats/;
var eTitle = '<?php include ("tytul_sk_t.php") ?>'; // opcjonalnie
</script>
<script type="text/javascript" src="estats/stats.js"></script>

2) Gdy wchodzę na stronę statystyk przez url: http://sklady-meblowe.com/estats/ strona statystyk nie ładuje się poprawnie - nie ładują się css i grafiki. Strona ładuje się poprawnie dopiero przy urlu: http://sklady-meblowe.com/estats/index.php.

3) Gdy jestem zalogowany jako administrator i chcę się wylogować pojawia się błąd:

500 Internal Error
The server encountered an internal error and could not complete your request.

Strona do wylogowywania to:
http://sklady-meblowe.com/estats/index. … amp;logout




Statystyki są na stronie:
http://sklady-meblowe.com/estats/,
a zbierane są z strony i podstron:
http://sklady-meblowe.com/

Czy tak się dzieje u wszystkich, czy tylko u mnie? Strona jest na serwerze home.pl

Pozdrawiam,
Sacud

PS: Widzę też, że antypixel się nie wyświetla. Czy nie łamie to l

12

(1 odpowiedzi, napisanych Propozycje zmian)

Witam,
chciałem zaproponować dodanie do eStats modułu "mapy kliknięć".

Oto linki do podobnych zastosowań:
- http://www.stat24.com/pl/statystyki/clickmap
- http://www.labsmedia.com/clickheat/
- http://crazyegg.com/
- http://www.clickdensity.com/

Czy jest taka możliwość?